最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

最新版Django全套視頻(django框架快速上手)_Python全棧_累計播

2023-04-15 23:53 作者:DINGY_IDLE  | 我要投稿

2.2 - GET請求和POST請求

定義

要區(qū)分GET和POST處理

視圖函數整體樣例

公司的視圖函數代碼基本結構

GET處理

提交表單數據更傾向于POST,更加隱秘

URL里【?】后面的就是查詢字符串,所以不能傳遞敏感數據,數據都在地址欄里

通常就傳一些輔助類信息,比如頁碼

GET方法示例

類型是字典,取[key]的value

【views.py】

【urls.py】

沒有給a賦值的情況

MultiValueDictKeyError(錯誤類型)

在Traceback里找到自己寫的代碼,檢查變量

結合KeyError可知沒有沒有查到key的值

用溫和的get就不會報錯,因為給了默認值

request.GET.getlist(key)

把request.GET整體打印出來,是一個字典,值是數組

把a打印出來,只打印數組最后一項

getlist()打印數組

輸出結果

用處:多選,多個值

思考:計算器功能既能用正則表達去取,又能拿GET查詢字符串做??醋约哼x擇。


post處理

使用場景

  • action是給哪個路由發(fā)請求(發(fā)給誰)
  • 一個組件框要給它起名,傳過去時username就是它的key,數據就是value

服務器端接收參數

和get完全一樣

【views.py】

寫一個全局變量存表單框,相當于寫一個html

回車后發(fā)送get請求返回一個POST_FORM,然后用戶發(fā)送post請求服務器獲取name

提交后提示403:

防范csrf攻擊,還學不到,先關上

F12【網絡】->【消息頭】看請求方法

【參數】看請求體里的表單數據

小結

  • get:少而美的數據
  • post:敏感的數據、大量的數據(密碼、文章)


2.03-Django的設計模式及模板層

MTV是MVC的升級版

傳統(tǒng)的MVC

M層:基于一個規(guī)則去操作數據庫,原來的傳統(tǒng)mysql操作語句封裝成一套自己的語法,專門用于開發(fā),比直接寫sql語句更簡化

V層:向用戶展示什么數據,展示怎樣的數據

C層:核心大腦,統(tǒng)籌全局請求傳輸

Django的MTV模式

在V層處理、規(guī)整好數據,一股腦丟給T層顯示

原來MVC中的C層在MTV里其實就是主路由,只負責url分發(fā),所以可以說是C-MTV模式

前后端不分離,高耦合

模板

把視圖里的python變量,通過字典的形式傳遞到html里

模板配置

只要配置DIRS就可以了,其他默認

DIRS的值是數組,可以寫多個,得到templates的絕對路徑

BASE_DIR經常充當的角色是拼接一個路徑

創(chuàng)建templates

在mysite目錄下創(chuàng)建templates文件夾,與manage.py同級

【settings.py】

模板的加載方式

方案1

【views.py】

【test_html.html】

【urls.py】

方案2(后期出現(xiàn),比方案1好)

獨立于loader的render

字典數據可有可無

視圖層與模板層之間的交互

視圖函數:Python變量封裝成字典{"":"","":""}

模板層:{{變量名}}調用字典

【views.py】

【html】


2.04-模板層-變量和標簽

模板層-變量

能傳到模板中的數據類型

  • 調一個索引的元素.index,和python不一樣,在python里是變量[index]
  • .key是傳入字典時,字典里也定義了字典
  • 可以調用某個對象里的方法,后面不需要括號
  • 和Vue的template差不多,以及jsp

【html】

【views.py】

運行結果

模板層-標簽

if判斷、for循環(huán)等

if 標簽

一定要記得結束標簽

if里括號是無效的,看官方文檔

【views.py】

【html】

練習-計算器頁面

【html】

提交的時候op根據value去選擇

自動格式化代碼:CTRL + ALT + L

刪掉默認的value

【views.py】

要顯示用戶提交之前填的數,就要原封不動地傳回去。locals()把當前函數里的局部變量直接封裝成字典

【html】

selected默認顯示選項,但是需要去做判斷,得到傳回來的op值

for 標簽

empty:數據是空值時執(zhí)行內容,省去自己判斷空

內置變量forloop

【html】

forloop.counter

forloop.first

【views.py】

返回一個數組


2.05-模板層-過濾器和繼承

模板層過濾器

對視圖傳過來的變量的值進行修整和處理,不需要視圖做

常用過濾器

  • add就是在value上做加法運算,傳的參數是字符串類型,要加引號
  • safe就是不對字符串轉義,比如傳入js代碼,不直接顯示為純字符串,而是當成js可執(zhí)行代碼

html轉義后的代碼,把尖括號等轉義

模板層-繼承

如果需要修改同樣的 頭尾部分,繼承可以簡化,只需要修改base.html

中間部分允許被修改,就在中間加block標簽

父模板:base.html

【views.py】

【base.html】

【sport.html】

重寫規(guī)則

視圖傳的變量繼承不了,比如子模板拿不到父模板的變量

只是純模板的技術,sport進的是sport的views視圖函數,整個過程并沒有走base的views,拿不到base的變量


2.06-url反向解析

代碼中url出現(xiàn)的位置,模板和視圖

url書寫規(guī)范,絕對地址和相對地址

第一種相對地址(高頻),取出協(xié)議、ip、端口

第二種相對地址,取出最后一個/之前的內容

【views.py】

【html】

【urls.py】

第三個鏈接訪問的絕對地址是:http://127.0.0.1:8000/test/test_url_result

路由里沒配置,所以404

url反向解析

用name去查找

模板通過url標簽傳參,填充到path轉換器上

傳參后url地址收到參數

無論如何修改url地址,只要沒有修改path里的name,模板頁面都能取到對應的url

沒有用{%url%}標簽定義的地址(絕對地址的寫法),但凡路由變了,就會受影響

在視圖里使用

瀏覽器如何知道302跳轉到哪里去?

通過響應頭標記,Location響應頭


3.01-靜態(tài)文件

什么是靜態(tài)文件

在服務器加載

用F12查看靜態(tài)文件,發(fā)送了一系列請求

過濾器選擇不同類型的請求

靜態(tài)文件配置

一旦被瀏覽器讀到標簽,就會對src地址發(fā)送http請求

django怎么知道靜態(tài)文件放哪

(圓括號是元組,句尾需要逗號)









最新版Django全套視頻(django框架快速上手)_Python全棧_累計播的評論 (共 條)

分享到微博請遵守國家法律
枞阳县| 偏关县| 全南县| 大新县| 永平县| 饶平县| 武夷山市| 青铜峡市| 车致| 通化县| 新宁县| 昌宁县| 盐边县| 韶山市| 萍乡市| 平顶山市| 洪江市| 广平县| 鹿邑县| 南部县| 资兴市| 甘洛县| 沅江市| 兰溪市| 卢龙县| 合江县| 尼木县| 明溪县| 克山县| 云浮市| 祁门县| 富宁县| 营山县| 六盘水市| 天门市| 锡林浩特市| 梁平县| 永仁县| 达州市| 大邑县| 申扎县|