日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【秒懂】号称最为简明实用的Django上手教程

發布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【秒懂】号称最为简明实用的Django上手教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.cnblogs.com/baiboy/p/django1.html

閱讀目錄

  • 1 幾個基本概念?
  • 2 Django配置準備
  • 3 Django基礎配置安裝

?

摘要:Django的學習教程也是分門別類,形式不一。或是較為體系的官方文檔,或者風格自由的博客文檔,或者偏向實例的解析文檔。即使官方文檔,章節較多,文字闡述累贅,有時候我們只是關注某個功能用法而已,而自由博文最大的問題是互相抄襲,結構混亂,涵蓋面小且錯誤較為明顯。由此,本文結合學習期間資料梳理和項目開發經驗,整理出一套較為常用實用的文章。適用于(1)新手入門,無論C#,C,java,Python,R等具有任何編程語言基礎均可;(2)想快速了解Django并可以快速開發上手者。(3)適用于作為資料查詢,技術點參考。(本文原創編著,轉載注明出處:號稱最為簡明實用的Django上手教程)

1 幾個基本概念?


?前置條件:假設讀者基本Python語言基礎,或者具備某種編程語言的基礎。你還熟悉web開發環境,懂些css,js,db等。

Django是什么?

Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。 Django的主要目標是使得開發復雜的、數據庫驅動的網站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發和DRY法則(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和數據模型。

-----維基百科

Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟件。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。

----百度百科

MTV開發模式?

Django是一個基于MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。它們各自的職責如下:

(1) 模型(Model),即數據存取層 處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。

(2) 視圖(View),即表現層 處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。

(3) 模板(Template),即業務邏輯層 存取模型及調取恰當模板的相關邏輯。模型與模板的橋梁。

Django的架構?

讓我們一覽 Django 全貌:

urls.py 網址入口,關聯到對應的views.py中的一個函數(或者generic類),訪問網址就對應一個函數。

views.py 處理用戶發出的請求,從urls.py中對應過來, 通過渲染templates中的網頁可以將顯示內容,比如登陸后的用戶名,用戶請求的數據,輸出到網頁。

models.py 與數據庫操作相關,存入或讀取數據時用到這個,當然用不到數據庫的時候 你可以不使用。

forms.py 表單,用戶在瀏覽器上輸入數據提交,對數據的驗證工作以及輸入框的生成等工作,當然你也可以不使用。

templates 文件夾 views.py 中的函數渲染templates中的Html模板,得到動態內容的網頁,當然可以用緩存來提高速度。

admin.py 后臺,可以用很少量的代碼就擁有一個強大的后臺。

settings.py Django 的設置,配置文件,比如 DEBUG 的開關,靜態文件的位置等。

上面的py文件不理解也沒有關系,后面會詳細介紹。一圖勝千言,架構全貌工作機制如下所示:

?

Django大家都在使用的商業網站

Sohu 郵箱? 、果殼網? 、 豆瓣? 、 愛調研 、 易度在線云辦公 、 優容網? 、 快玩游戲、九九房、貸幫網 、 趣奇網?、知乎、時尚時空 、游嘻板: YxPad webpy、DNSPod 國際版 、下廚房? 、 貝太廚房 、 Wopus問答 、 咕咚網 、扇貝網 、站長工具、易度文檔管理系統、個人租房、 在線文檔查看-易度云查看 、 FIFA310 足球數據分析專家、 搜狐隨身看等等。

2 Django配置準備


?前置條件:pip、python、sublime、anaconda環境已經安裝。

后置條件:

1 pip install django

檢查是否安裝成功:

?

xxx數據統計分析(決策)平臺

系統環境:WIN10 64bit
開發環境:sublime+Anaconda
數據庫:Mysql 5.6.17
語言:python3.5
框架:django1.11+Bootstrap
可視化工具:Highchart|Echarts|plotly|Bokeh(采用Echarts)

3 Django基礎配置安裝


?1 創建項目,項目決策分析:xmjc_analysis

在E盤根目錄下創建xmjc_analysis:

1 django-admin startproject xmjc_analysis

效果:

settings.py 項目的設置文件
urls.py 總的urls配置文件
wsgi.py 部署服務器文件
__init__.py python包的目錄結構必須的,與調用有關。

2 創建App名為analysis

1 django-admin startapp analysis

效果:

3 新定義的app加到settings.py中的INSTALL_APPS中

4 視圖和網址創建第一個頁面

(1)我們在analysis這個目錄中,把views.py打開,修改其中的源代碼:

1 2 3 4 5 6 7 8 9 10 ''' 第一個頁面 author:白寧超 site:http://www.cnblogs.com/baiboy/ ''' #coding:utf-8 from?django.shortcuts import render from?django.http import HttpResponse def index(request): ????return?HttpResponse(u"歡迎進入第一個Django頁面!")

第一行是聲明編碼為utf-8, 因為我們在代碼中用到了中文,如果不聲明就報錯.

第二行引入HttpResponse,它是用來向網頁返回內容的,就像Python中的 print 一樣,只不過 HttpResponse 是把內容顯示到網頁上。

我們定義了一個index()函數,第一個參數必須是 request,與網頁發來的請求有關,request 變量里面包含get或post的內容。

(2)我們打開 xmjc_analysis/xmjc_analysis/urls.py?這個文件, 修改其中的代碼:

1 2 3 4 5 6 7 8 9 10 from?django.conf.urls import url from?django.contrib import admin from?analysis import views?as?analysis_views urlpatterns = [ ????url(r'^admin/', admin.site.urls), ????url(r'^index/$', analysis_views.index,name='index'),# 首頁 ]

(3)本地運行服務器測試

注意在項目根目錄xmjc_analysis運行結果如下:

(4)頁面傳參數,顯示歡迎‘admin’字樣

修改view.py源碼:

通過get方式接受頁面參數,當然也可以采用post,結合form實現。效果如下

5 配置簡單數據庫操作,默認sqlite,咱們指定mysql數據庫

(1)在xmjc_analysis/settings.py文件下修改如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ''' 配置Mysql數據庫 2017年7月26日16:40:38 白寧超 ''' DATABASES = { ????'default': { ????????'ENGINE':?'django.db.backends.mysql', ????????'NAME':?'test', ????????'USER':?'test', ????????'PASSWORD':?'test123', ????????'HOST':'localhost', ????????'PORT':'3306', ????}, }

xmjc_analysis/__init__.py下修改:

1 2 import pymysql pymysql.install_as_MySQLdb()

(2)在analysis/models.py下設計數據庫表,采用ORM方式

1 2 3 4 5 6 7 8 9 10 11 from?django.db import models # Create your models here. class?User(models.Model): ????username = models.CharField('用戶名', max_length=30) ????userpass = models.CharField('密碼',max_length=30) ????useremail = models.EmailField('郵箱',max_length=30) ????usertype = models.CharField('用戶類型',max_length=30) ????def __str__(self): ????????return?self.username

(3)?在analysis/admin.py中定義顯示數據

1 2 3 4 5 6 7 from?django.contrib import admin from?.models import User class?UserAdmin(admin.ModelAdmin): ????list_display = ('username','userpass','useremail') # 自定義顯示字段 admin.site.register(User,UserAdmin)

(4)創建更改的文件,將生成的py文件應用到數據庫

1 2 python manage.py makemigrations python manage.py migrate

(5)創建超級管理員:用戶名,test;密碼密碼:test123456

1 python manage.py createsuperuser

(6)登錄后臺查看信息

運行服務器:python manage.py runserver

?

可以看到后臺信息,并對數據表進行增刪改查操作,但是后臺全部英文,可以改為中文顯示?

后臺管理設置為中文顯示,xmjc_analysis/settings.py下修改代碼:

1 LANGUAGE_CODE =?'zh-Hans'?# 中文顯示

再去查看:

(7)?Django 提供的 QuerySet API,shell玩轉MySql

在xmjc_analysis下輸入【?python?manage.py?shell】,然后查詢數據表。

創建一條用戶信息:

1 User.objects.create(username="李白", userpass="libai123",useremail="libai@163.com",usertype="超級管理員")

后臺查看:

其他操作方式:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 方法 1 User.objects.create(username="李白", userpass="libai123",useremail="libai@163.com",usertype="超級管理員") # 方法 2 twz =User(username="李白", userpass="libai123",useremail="libai@163.com",usertype="超級管理員") twz.save() # 獲取對象: Person.objects.all() # 滿足條件查詢 User.objects.filter(username="李白") # 迭代查詢: es = Entry.objects.all() for?e?in?es: ????print(e.headline) # 查詢排序: User.objects.all().order_by('username') # 鏈式查詢: User.objects.filter(name__contains="WeizhongTu").filter(email="tuweizhong@163.com") # 去重查詢: qs = qs.distinct() # 刪除操作: User.objects.all().delete()
1 2 # 更新操作: Person.objects.filter(name__contains="abc").update(name='xxx')
1 2 3 數據的導出: python manage.py dumpdata [appname] > appname_data.json python manage.py dumpdata blog > blog_dump.json
1 2 導出用戶數據 python manage.py dumpdata auth > auth.json # 導出用戶數據

(8)批量向數據表導入數據

將name.txt導入數據庫:

數據導入源碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #!/usr/bin/env python #coding:utf-8 # from?django.core import serializers import json import os os.environ.setdefault("DJANGO_SETTINGS_MODULE",?"xmjc_analysis.settings") ''' Django 版本大于等于1.7的時候,需要加上下面兩句 import django django.setup() 否則會拋出錯誤 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet. ''' import django import json if?django.VERSION >= (1, 7):#自動判斷版本 ????django.setup() def main(): ????from?analysis.models import User ????f = open('./readme/files/name.txt',encoding='utf-8') ????for?line?in?f: ????????name,pwd,email,type = line.split('|') ????????User.objects.create(username=name,userpass=pwd,useremail=email,usertype=type) ????f.close() def jsondb(): ????from?analysis.models import User ????data = eval(serializers.serialize("json", User.objects.all())) # json ????userdata = json.dumps(data) ????print(type(userdata)) if?__name__ ==?"__main__": ????main() ????# jsondb() ????print('插入完畢!')

查看結果:

?

>> ??至此,基本熟悉上手了。深入學習待續...

轉載于:https://www.cnblogs.com/Ryan-Yuan/p/11545023.html

總結

以上是生活随笔為你收集整理的【秒懂】号称最为简明实用的Django上手教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。