Django Web框架筆記day02

2021-09-26 05:41:14 字數 3963 閱讀 8322

django的框架模式

模板 templates劍指offer

模板的繼承

url 反向解析

if request.method ==

'post'

: 處理post請求的資料並響應

else

: 處理非post 請求的響應

使用post方式接收客戶端資料

方法

request.post[

'引數名'

]request.post.get(

'引數名',''

)request.post.getlist(

'引數名'

)

取消csrf驗證,否則django將會拒絕客戶端發來的post請求

middleware =[.

..# 'django.middleware.csrf.csrfviewmiddleware',..

.]

action

="/page1"

method

="post"

>

name

="title"

type

="text"

value

="請輸入"

>

name

="gender"

>

value

=1>

男option

>

value

=0>

女option

>

select

>

name

="comment"

rows

="5"

cols

="10"

>

附言...textarea

>

type

="submit"

value

="提交"

>

form

>

day02

mvc模式如圖:

[外鏈轉存失敗(img-bttpd6sq-1565913404538)(images/mvc.png)]

mtv 模式

mtv 代表 model-template-view(模型-模板-檢視) 模式。這種模式用於應用程式的分層開發

mtv

mtv模式如圖:

[外鏈轉存失敗(img-3sw1w8oj-1565913404539)(images/mtv.png)]

預設的模組資料夾templates修改settings.py檔案,設定templates的dirs值為'dirs': [os.path.join(base_dir, 'templates')],

# file: settings.py

templates =[,

]

模板的載入方式

通過 loader 獲取模板,通過httpresponse進行響應

from django.template import loader

# 1.通過loader載入模板

t = loader.get_template(

"模板檔名"

)# 2.將t轉換成 html 字串

html = t.render(字典資料)

# 3.用響應物件將轉換的字串內容返回給瀏覽器

return httpresponse(html)

login2使用 render() 直接載入並響應模板

from django.shortcuts import render

return render(request,

'模板檔名'

)

模板的傳參

使用 loader 載入模板

t = loader.get_template(

'***.html'

)html = t.render(字典資料)

return httpresponse(html)

使用render載入模板

return render(request,

'***.hlogin2tml'

,字典資料)

模板的變數

在模板中使用變數語法

檢視函式中必須將變數封裝到字典中才允許傳遞到模板上

def

***_view

(request)

dic =

return render(request,

'***.html'

, dic)

模板的標籤作用

標籤語法

...

if 標籤

......

......

if 標籤裡的布林運算子

locals函式的使用

locals()返回當前函式作用域內全部變數形成的字典

for 標籤

語法

... 迴圈語句

... 可迭代物件無資料時填充的語句

內建變數 - forloop

變數描述

forloop.counter

迴圈的當前迭代(從1開始索引)

forloop.counter0

迴圈的當前迭代(從0開始索引)

forloop.revcounter

迴圈結束的迭代次數(從1開始索引)

forloop.revcounter0

迴圈結束的迭代次數(從0開始索引)

forloop.first

如果這是第一次通過迴圈,則為真

forloop.last

如果這是最後一次迴圈,則為真

forloop.parentloop

當巢狀迴圈,parentloop 表示外層迴圈

過濾器作用 語法

常用的過濾器

過濾器說明

lower

將字串轉換為全部小寫。

upper

將字串轉換為大寫形式

safe

預設不對變數內的字串進行html轉義

add: 「n」

將value的值增加 n

truncatechars:『n』

如果字串字元多於指定的字元數量,那麼會被截斷。 截斷的字串將以可翻譯的省略號序列(「…」)結尾。

…文件參見:

繼承模板extends標籤(寫在模板檔案的第一行)

子模板 重寫父模板中的內容塊

子模板塊用來覆蓋父模板中 block_name 塊的內容

注意

參考文件

模板的繼承示例:

url() 的name關鍵字引數

在模板中通過別名實現位址的反向解析

練習:

寫乙個有四個自定義頁面的**,對分對應路由:

/ 主頁

/page1 頁面1

/page2 頁面2

/page3 頁面3

功能: 是主頁加 三個頁面的連線分別跳轉到乙個頁面,三個頁面每個頁面加入乙個鏈結用於返回主頁

8吧

Django web框架目錄

編輯本目錄 01 http協議 編輯02 web應用程式 編輯03 http請求協議與響應協議 編輯04 diyweb框架 編輯05 django簡介與安裝 編輯06 django簡單示例 編輯07 靜態檔案配置 編輯08 url之路由控制 編輯09 檢視層 編輯10 模板層 編輯11 orm簡介 ...

Django Web框架筆記day06

中介軟體 middleware 實現方式 django啟用session session的基本操作 儲存 session 的值到伺服器 獲取session的值 在 settings.py 中有關 session 的設定 session cookie age session expire at bro...

django web開發框架簡介 01

核心思想 高可擴充套件性 向後相容 低耦合,高內聚 pip freeze可匯出安裝包 虛擬環境安裝 sudo apt install python virtualenv建立虛擬環境 virtualenv 虛擬環境名稱 linux上通過virtualenv部署虛擬環境 linux下的虛擬環境使用 pi...