Django基礎(1:架構流程與目錄)
Django 是 python 做 web 開發的一個很著名的框架,很多大型網站(比如豆瓣、YouTube)都用它開發,下面就來介紹一下 Django 的架構原理
原理
1. MVT設計模式
M(Models):資料模型,直接對映到資料庫
V(Views):功能檢視,編寫你的業務功能
T(Templates):頁面模板,就是顯示在瀏覽器的 HTML 檔案
2. 架構流程圖
流程說明:
①:客戶端輸入 url ,向伺服器傳送一個 HTTP 請求
②:WSGI 是一個能響應請求的介面部件,初學可以不管它,它把 url 傳給 URLs 路由
③:URLs 根據收到的 url,呼叫對應繫結的 Views, 所以 URLs 相當於導航
④:Views 是業務功能模組,它先從 Models 模組拿需要的資料
Model 是資料模型模組,它通過 ORM 技術實現從類到資料庫的對映,這樣我們就可以不關心資料庫而只對類進行修改
⑤:Views 從Templates 拿需要的頁面模板
⑥:Views 根據 Models 和 Templates 的資料,實現自己的功能後把 HttpResponse 傳送給負責響應的 WSGI
不難看出,Views 是整個框架的核心,它不僅關聯了 Models、Templates,還實現了業務功能
⑦:WSGI 把響應的內容發給客戶端(瀏覽器),使用者就能看到想要的網頁了
建立方法與目錄介紹
Django 官方教程錯誤
在使用通用檢視後,index.html 內容應如下:
{#<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>#} <ul> {% for question in latest_question_list %} <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li> {% endfor %} </ul>
1. 環境準備
Anaconda3、 一個虛擬環境、用命令 conda install django 安裝 django
2. 建立專案
(1) 命令:django-admin startproject mysite (mysite 是自己命名的專案名稱)
(2)目錄檔案:
mysite/ :根目錄只是你專案的容器 manage.py :一個讓你用各種方式管理 Django 專案的命令列工具 mysite/ :包含你的專案檔案的純 Python 包,裡面的檔案重要 __init__.py :一個空檔案,僅僅告訴 Python 這個目錄是一個 Python 包而已 settings.py :整個 Django 專案的配置檔案,配置資料庫、app、伺服器等 urls.py :url 的入口、總目錄,負責把 url 導流到對應的 app 的 urls.py (app 稍後介紹) wsgi.py :專案的執行在 WSGI 相容的Web伺服器上的入口,先不管它3. 建立應用
(1)專案和應用的區別:
應用是一個專門做某件事的網路應用程式——比如部落格系統,或者公共記錄的資料庫,或者簡單的投票程式。專案則是一個網站使用的配置和應用的集合
(2)在 manage.py 同級目錄下建立 (也就是跟第二個 mysite 同級,就在第一個 mysite 之下)
(3)命令:python manage.py startapp myapp (myapp 是自己命名的應用名稱)
(4)目錄檔案:
myapp/ :該 app 的檔案容器 __init__.py :初始化檔案,一個空檔案,僅僅告訴 Python 這個目錄是一個 Python 包而已 admin.py :管理員檔案,管理員的相關功能在這兒編寫 apps.py :app 配置檔案,先不管 migrations/ :資料庫的遷移記錄檔案的目錄,裡面有自動生成的遷移記錄 __init__.py :初始化檔案,空檔案,作用同上面的初始化檔案一樣 models.py :資料模型檔案,在這兒按規定格式用類來定義你的資料模型,直接對映到資料庫 tests.py :測試檔案,裡面存放測試用例,測試用例不會改變資料庫和其他模組 views.py :檢視檔案,裡面編寫業務功能,關聯 Models、Templates,返回結果
這樣對 Django 的架構、原理、流程和目錄就瞭解得差不多了,後面我們就依靠小專案來演示編寫流程