• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Django之web框架應用與MTV模型

    標簽: Django  python  django

    上次提到的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 有一個重啟器,修改代碼保存后,自動加載重啟程序

    版權聲明:本文為Sunny_Future原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/Sunny_Future/article/details/110151270

    智能推薦

    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服務器進行封裝,并在請求到來時,對請...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    精品国产乱码久久久久久蜜桃不卡