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 內容應如下:
}
#}
1. 環境準備anaconda3、 乙個虛擬環境、用命令 conda install django 安裝 django2. 建立專案
(1) 命令:django-admin startproject mysite (mysite 是自己命名的專案名稱)
(2)目錄檔案:
3. 建立應用(1)專案和應用的區別:mysite/ :根目錄只是你專案的容器
manage.py :乙個讓你用各種方式管理 django 專案的命令列工具
mysite/ :包含你的專案檔案的純 python 包,裡面的檔案重要
__init__.py :乙個空檔案,僅僅告訴 python 這個目錄是乙個 python 包而已
wsgi.py :專案的執行在 wsgi 相容的web伺服器上的入口,先不管它
應用是乙個專門做某件事的網路應用程式——比如部落格系統,或者公共記錄的資料庫,或者簡單的投票程式。專案則是乙個**使用的配置和應用的集合
(2)在 manage.py 同級目錄下建立 (也就是跟第二個 mysite 同級,就在第乙個 mysite 之下)
(4)目錄檔案:
__init__.py :初始化檔案,乙個空檔案,僅僅告訴 python 這個目錄是乙個 python 包而已
migrations/ :資料庫的遷移記錄檔案的目錄,裡面有自動生成的遷移記錄
__init__.py :初始化檔案,空檔案,作用同上面的初始化檔案一樣
models.py :資料模型檔案,在這兒按規定格式用類來定義你的資料模型,直接對映到資料庫
tests.py :測試檔案,裡面存放測試用例,測試用例不會改變資料庫和其他模組
views.py :視**件,裡面編寫業務功能,關聯 models、templates,返回結果
1. 建立資料模型 (models)資料模型通過 orm 技術對映到資料庫,這樣就可以直接操作模型,而不需要關心資料庫這樣對 django 的架構、原理、流程和目錄就了解得差不多了,後面我們就根據流程來做個最簡單的專案過程中自動生成對應的資料庫操作語句,但需要了解資料庫 api 的使用方法
2. 建立管理員 (admin)
admin 是管理員站點,這樣就可以直接管理資料而不用去資料庫修改
過程中自動生成管理員介面和對資料庫的操作方法
3. 規劃路由 (urls)
url 是路由目錄,目錄分為總目錄和分目錄:
(1)project/urls 是總目錄,也是 url 的入口,負責把 url 導流到分目錄
(3)如果匹配不到 url ,django 會自動呼叫 404 檢視
4. 編寫檢視 (views)
檢視是 django 的功能模組,主要任務有:
(1)從對應的 urls 接收引數
(2)從模型(models)匯入資料
(3)從模板(templates)繫結模板
(4)根據需要,利用引數、模型、模板編寫功能**
(5)在頁面返回 httpresponse 物件或者 http404 異常
ps:開發過程中,能使用通用檢視的,優先使用通用檢視
5. 設計模板 (templates)
(1) 模板就是 html 頁面
(2)注意模板語言寫法:
變數:'}' 包裹
語句:'' 包裹,成對出現,表示到哪兒結束
屬性:' . ' 獲取,eg:}
過濾變數值:用 '|' 進行管道過濾,eg:}
模板繼承:格式:''
springmvc(1)架構執行流程
第一步 發起請求到前端控制器 dispatcherservlet 第二步 前端控制器請求處理器對映器 handlermaping 查詢處理器 handler 可以根據xml配置 註解進行查詢 第三步 處理器對映器向前端控制器返回處理器 第四步 前端控制器呼叫處理器介面卡 handleradapter...
1 架構的開悟
軟體架構 有關軟體整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。通常說架構是一種能力,架構角色則是要求你在具體事務中行使某些行為,而架構師則是用來標識這些能力與行為的乙個職務。通常我們大多數人都具有架構的能力,並且也或多或少地行使架構師可能會有的行為,但是可能還沒有 架構師 這個頭銜...
1 架構的概念
涉及到的內容包括 系統與子系統 模組與元件 框架與架構 系統與子系統 系統泛指由一群有關聯的個體組成,根據某種規則運作,能完成個別元件不能單獨完成的工作的群體。它的意思是 總體 整體 或 聯盟 子系統也是由一群有關聯的個體所組成的系統,多半會是更大系統中的一部分。模組與元件 從邏輯的角度來拆分系統後...