Django之web框架應用與MTV模型
上次提到的Django之wsgi協議應用,基于wsgiref模塊DIY一個web框架引的確是幫我們省了很多事情,當然強大的Django web框架早已替我們封裝好了一切,開箱即用~
1、MVC與MTV模型
1.1 MVC
Web服務器開發領域里著名的MVC模式,所謂MVC就是把Web應用分為模型(M)、控制器(C)和視圖(V)三層,他們之間以一種插件式的、松耦合的方式連接在一起,模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求,其示意圖如下所示:
1.2 MTV
Django的MTV模式本質上和MVC是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,Django的MTV分別是值:
M 代表模型(Model): 負責業務對象和數據庫的關系映射(ORM)。
T 代表模板 (Template):負責如何把頁面展示給用戶(html)。
V 代表視圖(View): 負責業務邏輯,并在適當時候調用Model和Template。
除了以上三層之外,還需要一個URL分發器,它的作用是將一個個URL的頁面請求分發給不同的View處理,View再調用相應的Model和Template,MTV的響應模式如下所示:
2、Django框架
一個 web 框架,屬于 web 應用程序 專注于業務,瑣事就別干了,重點在于業務邏輯上,怎么快怎么來,不可能socket寫一個項目,拆包就得半天,所以呢? 選擇合適的web框架不失為明智之選~
Django: MTV結構 是由 MVC 衍生過來的,一個web框架的模式
2.1 解析請求
wsgi.py
socket創建、http解包、拆包的過程; http協議解包,都是wsgi 協議 解決的
- 與這次請求相關的所有請求數據,都存儲在request對象里
- 函數 默認的形參是request,誰調用則傳給誰
2.2 響應請求
引入一個 HttpResponse類,就能返回一個標準的 http響應格式
- HttpResponse(響應體) ,返回一個字符串
- render(響應體),返回一個頁面,其父類還是HttpResponse
框架中的 render 取出頁面 --》 屬于框架的 T
- 包含特殊變量
- 置換變量
- views.py
{'n_web': now}
- html
{{ n_web }}
2.3 多app應用
-
一個項目 可以 有多個 應用app
-
一個應用創建 一個 package, 對應一個 視圖文件,后臺邏輯處理展示
-
多個應用單獨創建,進行解耦,業務邏輯函數屬于哪里就放到哪個應用app的views文件
2.4 重啟器
django 有一個重啟器,修改代碼保存后,自動加載重啟程序
智能推薦
Django之登錄功能連接mysql,MTV與MVC,orm簡介,用戶注冊展示小案例
day61 一.昨日回顧 二.登錄功能,鏈接mysql 路由 視圖函數 模板文件login.html 模板文件index2.html 三.MTV與MVC 四.Django請求生命周期 五.虛擬環境 ,pycharm配置 六.orm概述 七.pycharm連接sqlite/mysql 八.Django中orm的使用 九.用戶注冊登錄展示小案例 路由 視圖 models.py userlist.py ...
MTV框架之Template(模板/界面)
MTV框架之Template(模板/界面) 1、模板目錄位置 應用下 不需要注冊 無法跨應用地進行復用 工程下 需要注冊 settings.py范例 可以在不同應用中復用 1.1Django框架自帶模板位置 2、模板語法 2.1 讀取數據 {{ xxx }} {{ xxx.attr }} {{ xxx.method }} {{ xxx.i }} {{ xxx.key }} 2.2 注釋 {# 模板...
WEB框架與Django簡介
WEB框架與Django簡介 HTTP協議: ? 超文本傳輸協議:規定了客戶端與服務端消息傳輸的格式 四大特性: 數據格式之請求: 數據格式之響應: 響應狀態碼: 動靜態網頁: 靜態網頁: ? 頁面上的數據都是寫死的,萬年不變 動態網頁: ? 頁面上的數據是從后端動態獲取的 模板渲染 后端生成的數據直接傳遞給前端頁面使用(并且前端頁面可以靈活的操作修改數據) 模板語法需要依賴于第三方模塊jinja...
web框架之Django基礎
本節內容 HTTP協議 wsgi協議和wsgiref模塊 Djano基本流程和配置 Django的路由系統 Django靜態文件 template模板語言 一 HTTP協議 1 HTTP簡介 HTTP是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫。它的發展是萬維網協會(World Wide Web Consortium)和Internet工作小組IE...
02 理解Django框架下MTV模式(2)
1、概述 本篇用一個簡單的示例說明Django的MTV的使用模式,具體前期準備見01內容。 2、步驟1:新建工程 1)在電腦本地新建文件夾,命名Site。 2)打開cmd命令提示符窗口,切換路徑至該文件夾。 3)使用django-admin新建工程firstsite 說明:使用命令行后會在Site文件中自動創建,其中firstsite里面的文件結構為: 3、新建一個Django app 1)使用c...
猜你喜歡
python web應用框架Django使用教程
本人python版本3.4 首先安裝Django 然后查看是否安裝成功 python -m django --version 出現版本即為成功。 然后創建項目 django-admin startproject mysite 結構如下: 外部mysite是目錄名,名字可以更改 manage.py一個可以和Django交互的程序 內部的mysite才是實際python包 mysite/__init_...
Web框架以及兩種模式MVC,MTV
一、Web框架的本質 眾所周知,對于所有的Web應用,本質上其實就是一個socket服務端,用戶的瀏覽器其實就是一個socket客戶端。 上述通過socket來實現了其本質,而對于真實開發中的python web程序來說,一般會分為兩部分:服務器程序和應用程序。服務器程序負責對socket服務器進行封裝,并在請求到來時,對請...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...