02--Django項(xiàng)目的MTV開發(fā)模式

一、Django 處理 HTTP 請求

Web 應(yīng)用的交互過程其實(shí)就是 HTTP 請求與響應(yīng)的過程。
Django 作為一個(gè) Web 框架,也能接收瀏覽器發(fā)來的 HTTP 請求,返回相應(yīng)的 HTTP 響應(yīng)。那么:

  • Django 如何接收 HTTP 請求?
  • Django 如何處理這個(gè) HTTP 請求?
  • Django 如何生成 HTTP 響應(yīng)?

對(duì)于如何處理這些問題,Django 有其一套規(guī)定的機(jī)制。我們按照 Django 的規(guī)定,就能開發(fā)出所需的功能。

Django 如何接收 HTTP 請求

Django 接收 HTTP 請求,主要通過 urls.py 這個(gè)文件將 URL 地址解析到對(duì)應(yīng)的 VIEWS里面

from django.contrib import admin
from django.urls import path
from about import about_views  # new
from django.conf.urls import include  # new

urlpatterns = [
    path('admin/', admin.site.urls),
    path('abc/', include('about.urls')),  # new
    path('xyz/', about_views.index),  # new
]

這里使用了兩種方式來解析 URL 地址

  1. abc 路徑地址轉(zhuǎn)發(fā)到 about 應(yīng)用的 urls.py 模塊,由 about 應(yīng)用處理,地址將 abc/路徑進(jìn)行拼接
from django.urls import path
from . import views

urlpatterns = [
    path('123', views.index),
]

相當(dāng)于解析了 http://127.0.0.1:8000/abc/123

  1. xyz 路徑地址轉(zhuǎn)發(fā)到 about 應(yīng)用的 views.py 模塊的 index 方法,由 index 處理改請求
from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request,'about_me.html')

相當(dāng)于解析了 http://127.0.0.1:8000/xyz

Django 如何處理這個(gè) HTTP 請求

Django 處理 HTTP 請求,主要通過 views.py 這個(gè)文件,上面我們說過 urls.py 模塊將地址轉(zhuǎn)發(fā)到對(duì)應(yīng)的 views.py 模塊的具體方法中處理,然后方法會(huì)返回結(jié)果。

Django 如何生成 HTTP 響應(yīng)

views.py 模塊的具體方法中處理地址請求時(shí),會(huì)返回結(jié)果。

二、HTML模版與靜態(tài)資源

模版與資源
  1. 當(dāng)我們再 render 里面返回 about_me.html 時(shí),頁面可能會(huì)報(bào) TemplateDoesNotExist 錯(cuò)誤,這個(gè)時(shí)候需要在setting中TEMPLATES的DIRS里面加上templates的目錄
TEMPLATES = [
    {
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
    },
]

setting中 BASE_DIR 的定義,可以獲取項(xiàng)目的絕對(duì)路徑
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
os.path.abspath(__file__) 可以獲得當(dāng)前文件的絕對(duì)路徑

  1. 當(dāng)html頁面正常打開,但是css文件404時(shí),這個(gè)時(shí)候需要在setting中加上靜態(tài)文件的地址
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

三、項(xiàng)目配置流程

項(xiàng)目配置流程
  1. 上圖展示了一個(gè)最簡單的項(xiàng)目配置的流程
  2. 在圖中,上面三步是在創(chuàng)建項(xiàng)目的初期完成的,完成后不需要變動(dòng)
  3. 中間三步,是后臺(tái)處理的核心,也是我們需要經(jīng)常改動(dòng)的地方
  4. 最后的Html和css則是前端需要關(guān)注和處理的地方

Django的MTV

  • Model(模型):數(shù)據(jù)庫相關(guān)的操作(ORM)
  • Template(模版):模板語法--->將變量(數(shù)據(jù)庫數(shù)據(jù))如何巧妙嵌入html頁面中
  • View(視圖):邏輯處理
  • 另外,Django還有一個(gè)urls分發(fā)器:路徑與視圖函數(shù)的映射關(guān)系
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • PythonWeb框架要點(diǎn)、Django介紹、工程搭建、配置、靜態(tài)文件與路由 1.Python Web 框架要點(diǎn) ...
    Cestine閱讀 1,934評(píng)論 0 6
  • 點(diǎn)我查看本文集的說明及目錄。 本項(xiàng)目相關(guān)內(nèi)容包括: 實(shí)現(xiàn)過程: CH7 創(chuàng)建在線商店 CH8 管理支付和訂單 CH...
    學(xué)以致用123閱讀 3,864評(píng)論 0 6
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,127評(píng)論 1 3
  • Django的來歷:python開發(fā)的! long long long years ago!勞倫斯出版集團(tuán)新聞 網(wǎng)...
    JAguys閱讀 486評(píng)論 0 0
  • 一、Django框架前言知識(shí): 1、C/S和B/S的區(qū)別: C/S結(jié)構(gòu)軟件:客戶端/服務(wù)端軟件,即客戶端要自己下載...
    月下獨(dú)酌123閱讀 5,141評(píng)論 0 36

友情鏈接更多精彩內(nèi)容