Django的來歷:python開發的!
long long long years ago!勞倫斯出版集團新聞
網絡渲染發布自己的新聞——> 需要有自己的網站-> 處理效率較高的網站
鑒于當時該公司程序員,python開發的!
降低開發成本[優先選擇自己公司已有程序員的開發能力!]
python-> web開發-> 代碼的復雜度較高,技術難度較低!
封裝python開發web網站的大部分的應用模塊-> Django
網站的開發過程中,使用、升級、完善、封裝->迭代升級-> 完善的一個操作模塊
2005年開源發布[開發源代碼],共享!讓所有的技術愛好者,可以共同開發維護!
開源~滿足開源協議
2007年社區發布了第一個正式版本1.0,發布之后,由于Django開發web網站的極度的高效性,很快流行起來!
2010年,Python稱為TOIBE年度語言,但是沒有流行的契機!
2016年,python跟隨著Goole的AlphaGO和對應的人工智能,再度崛起!
2017年,python稱為人工智能的首選語言!
python第一次被國家機構認可,成為了教科書語言!
1-1 Django的優勢
Django是python語言編寫的,專門用于快速、高效的開發web應用程序的一個框架!
|
框架:模塊的集合,除了具備模塊所有的功能之外,同時會提供一些簡單的功能處理流程,方便開發人員對于指定流程的自動化處理!同時框架會根據不同的功能流程有自己的一些特定的軟件結構模式,所以框架在某種程度上也是一種獨立的軟件!
模塊:類似于pymysql/pygame,模塊是python中代碼塊的集合,一般會包含多個變量、函數、類型等
|
Django由于其非常有特點的特性,很快流行于web開發領域
l 先進的MVT處理模式
l 自動化的項目構建管理方式
l 完善的數據模型處理
l 強大的后臺管理系統
l 優秀的ORM操作模塊
l 優雅的模板操作封裝
l 優異的緩存支持
l 完美的表單操作封裝
l 內建Sqlite數據庫,和其他各種類型數據庫的支持
l more……
1-2 Django框架中MVT處理模式
關于web軟件的架構模式
傳統的web軟件處理模式:MVC處理模式
Django進行了封裝和升級的處理模式:MVT處理模式
關于軟件和業務功能的架構模式
B/S C/S 軟件架構模型
B2B C2C B2C 業務架構模型
1-3 Django快速入門
l 安裝Django
Django是一個框架,是一個用來快速開發web應用程序的框架
Django框架的安裝方式
所有版本:Django1.0->Django2.0.x
最新的版本:Django2.0.x版本:主要用來進行學習和測試
流行的版本:Django1.8~1.11版本,也是公司常用的版本
Django的安裝
pip install django -> 默認安裝了最新的穩定版本 2.0
pip install django==1.11 ->指定版本安裝
安裝過程中出現了關鍵字Permission的錯誤,表示權限不夠,通過管理員權限運行命令行再次執行命令,就可以安裝成功!
l 項目搭建
a. 創建項目
使用Django創建一個web項目:項目自動化創建構造
django-admin startproject 項目名稱
|-- myproject/ 項目的主目錄,存放項目中所有文件的文件夾
|-- myproject/ 項目的主項目/根項目,用來管理所有的項目
|-- init.py 包定義文件,定義了存放這個文件的文件夾是一個python包
|-- settings.py 項目中所有的配置信息存放的模塊,配置模塊
|-- urls.py 路由模塊,定義url地址和訪問的處理函數之間的映射關系
|-- wsgi.py 實現了wsgi網關協議的模塊,表示Django項目支持wsgi網關協議
|-- manager.py 項目的命令行支持模塊,可以在命令行執行不同的命令實現不同的功能
b. 運行測試
啟動項目,在瀏覽器中訪問項目是否創建成功
在命令行中,進入項目主目錄,執行下面的命令
python manage.py runserver
執行完上述命令之后,在瀏覽器中訪問:http://localhost:8000查看訪問到的頁面
c. 創建第一個根項目的視圖
首先在根項目下,創建一個模塊:views.py
在view.py中,創建一個函數,返回一個數據[函數:視圖處理函數]
d. 配置路由應用
打開myproject/urls.py路由模塊
添加一個新的路由映射地址
e. 運行程序
l 創建第一個模塊應用
a. 創建一個模塊應用
在項目主目錄中執行命令[app : application]
django-admin startapp 模塊名稱[二級網站]
|-- myblog/ 模塊的根目錄;二級網站的根目錄
|-- migrations/ 數據庫文件存放的文件夾[數據庫部分細講]
|-- init.py 包定義文件
|-- admin.py 后臺管理文件[后臺管理系統細講]
|-- apps.py 模塊名稱定義文件
|-- models.py 數據模型定義文件
|-- test.py 測試文件——一般用不上
|-- views.py 視圖模塊,定義視圖處理函數
b. 將模塊應用,添加到根項目中
修改myproject/settings.py配置文件
INSTALLED_APP選項列表中,添加myblog
c. 編寫模塊的視圖處理函數
修改views.py文件,添加一個博客首頁的視圖處理函數
d. 配置模塊的路由映射
myblog模塊中創建一個路由模塊urls.py
e. 將模塊中的路由,添加到根項目的路由中
根項目的路由:主路由
模塊中的路由:子路由
|
小總結:
1. 創建Django****項目:公司門戶項目
**django-admin startproject myproject **
創建了一個名稱為myproject****的項目
2. 配置語言環境
打開創建的項目配置文件myproject/myproject/settings.py
修改配置選項如下:
# LANGUAGE_CODE = ‘en_us****’ 注釋掉
LANGUAGE_CODE = ‘zh_Hans’ 添加
3. 定義門戶首頁的視圖
在myproject/myproject/****文件夾下,創建一個views.py****視圖模塊
編輯函數如下:
# 引入模塊
from django.http import HttpResponse
# 定義處理函數
def index(request):
return HttpResponse(“****公司首頁”)
4. 配置主路由
打開myproject/myproject/urls.py****路由模塊
編輯內容如下
from django.conf.urls import url
from django.contrib import admin
from . import views
urlpatterns = [
url(r‘^admin/’, admin.site.urls),
url(r‘^$’, views.index, name=’index’),
]
5. 運行項目,測試主項目是否能訪問成功
cd myproject/ 進入項目主目錄 【切記不要進入根項目】
python manage.py runserver 運行程序
打開瀏覽器,訪問http://localhost:8000就可以查看到 公司首頁 的視圖
|
|
6. 創建一個模塊應用——公司博客
進入主目錄,執行命令創建博客模塊
cd myproject/ 進入項目主目錄 【切記不要進入根項目】
django-admin startapp myblog
7. 將模塊項目添加到根項目中
修改myproject/myproject/settings.py****配置文件
INSTALLED_APPS****配置選項的列表中,在末尾添加上模塊名稱
INSTALLED_APPS = [
..
‘myblog’,
]
8. 配置模塊子路由文件
在myproject/myblog/****文件夾下,常見一個路由配置文件urls.py****【子路由】
編輯內容如下
from django.conf.urls import url
from . import views
urlpatterns = [
** url(r‘^$’, views.index, name=”index”),**
]
9. 將子路由,添加到根項目的主路由中
修改根項目主路由文件myproject/myproject/urls.py****,編輯內容如下:
from django.conf.urls import url, include
from django.contrib import admin
from . import views
urlpatterns = [
url(r‘^admin/’, admin.site.urls),
url(r‘^myblog/’, include(‘myblog.urls’)),
url(r’^$’, views.index, name=’index’),
]
10. 運行測試
在中目錄中,執行命令啟動服務器
python manage.py runserver
打開瀏覽器,訪問項目:公司首頁
打開瀏覽器,訪問模塊:公司博客首頁
|
|
任務:梳理總結 [****百度]
Django****框架的描述
MVC****處理模式描述
MVT****處理模式的描述
B/S C/S****軟件結構的描述
B2B C2C B2C****業務結構的描述
簡單搭建項目測試:
了解Django****項目和模塊項目的創建以及使用過程[]
模擬上午的內容,自行搭建Django****項目——
|
|
預留1個小時
沒有完成的學員——完成梳理總結和第一個版本的項目開發
初步完成的學員——按照有條理的方式,將文檔進行二次整理,發布到簡書上!
|
Django web項目開發以及處理流程
- Django項目的請求處理流程
創建項目:django-admin startproject mysite
項目中的各個文件夾:
|-- mysite/ 項目的主目錄[包含了項目中所有的文件信息]
|-- mysite/ 項目的根項目、主項目[管理所有的模塊項目]
|-- init.py 包(package)聲明文件
|-- settings.py 項目配置信息[項目中所有開關性質的變量-LANGUAGE_CODE]
|-- urls.py 項目的主路由配置文件[路由:映射url地址和調用處理函數]
|-- wsgi.py Django項目實現Wsgi網關協議的模塊
|-- manage.py 命令模塊,支持django可以通過命令操作項目中的指定功能
定義視圖處理函數:views.py模塊中定義
定義一個普通函數,可以在路由模塊中綁定給指定的url地址;通過Url地址的方式調用這個普通函數[可以通過url地址調用執行的普通函數:視圖處理函數]
視圖處理函數中的返回值:HttpResponse
Http:超文本傳輸協議
Response:響應數據
HttpResponse:支持超文本數據傳輸的一個響應對象
路由配置:將視圖處理函數,綁定到指定的url地址上
可以通過瀏覽器中訪問url地址,調用執行指定的views.py模塊中的視圖處理函數
根項目中的路由配置,[根項目中的路由:主路由]通過mysite/mysite/urls.py模塊
啟動項目,直接通過瀏覽器進行訪問測試
注意:代碼開發過程中,開發完一個完整的小流程,就需要運行測試這個小流程是否正確;千萬切記不要等到所有功能一次性寫完再運行測試此時如果出現大量報錯!就需要非常有經驗的老司機才能準確判斷出錯位置和排查錯誤!
創建子項目/模塊項目
django-admin startapp blog
項目整體文件結構
|-- mysite / 項目主目錄
|-- mysite/ 根項目
|-- init.py
|-- settings.py
|-- urls.py
|-- views.py
|-- wsgi.py
|-- blog/ 子項目
|-- init.py
|-- admin.py 后臺管理相關[后臺管理部分詳細說明]
|-- app.py 項目描述文件[子項目名稱]
|-- models.py 子項目中數據模型的定義[****明天詳細講]
|-- views.py 子項目中的視圖函數處理模塊
|-- urls.py 子項目中的路由模塊[子路由]
|-- test.py 測試模塊[以后擴展]
|-- manager.py
定義子項目視圖模塊——定義子項目中的首頁視圖處理函數
mysite/blog/views.py
定義子路由操作——配置子項目中的路由模塊
本身該文件在創建項目時是不存在的,需要手工創建
mysite/blog/urls.py
子路由和主路由的關系
訪問關系,用戶在瀏覽器客戶端發起的請求地址,首先會進入主路由進行查詢,查詢不到匹配的地址,就會進入對應的子路由進行查詢,知道查詢匹配成功返回指定視圖函數執行的結果!如果查詢不到,就會返回404錯誤頁面[資源沒有找到]
簡短總結:
Django入門部分
l web****應用程序開發步驟
n 創建主項目
n 定義根項目中的視圖處理函數
n 配置根項目中的路由模塊[主路由]
n 創建子項目(子項目——>添加到根項目管理中-> settgins.py-INSTALLED_APPS)
n 定義子項目中的視圖處理函數
n 配置子項目中的路由模塊[子路由]
n 配置子路由和主路由之間的關聯關系
l 引入的各種包
n 視圖模塊:from django.http import HttpResponse
n 路由模塊:from django.conf.urls import url, include
u from . import views
晚自習項目任務:搜狐門戶開發
提示如下:
根項目django-admin startproject sohu
子項目django-admin startapp sohu_email
django-admin startapp sohu_blog
django-admin startapp sohu_news
django-admin startapp sohu_tv
..