更新時(shí)間:2019-12-12 來(lái)源:黑馬程序員 瀏覽量:
1、快速實(shí)現(xiàn)
①定義路由 urls.py
②定義視圖函數(shù) views.py
·······
③模型數(shù)據(jù)調(diào)用 創(chuàng)建表
④包含模板 加載模板(html····)
1.1、路由定義
1.2、編寫(xiě)視圖
1.3、瀏覽器訪(fǎng)問(wèn)
到這里,就完成了一個(gè)頁(yè)面請(qǐng)求。
2、請(qǐng)求
https://docs.djangoproject.com/zh-hans/2.1/ref/request-response/
客戶(hù)端請(qǐng)求服務(wù)器端攜帶的信息
屬性:
HttpRequest.scheme:請(qǐng)求的方式,即http或者是https
HttpRequest.body:請(qǐng)求的主體,返回的是一個(gè)字符串
HttpRequest.path:請(qǐng)求的路徑,這里的路徑是指相對(duì)路徑,也就是說(shuō)一個(gè)登陸后臺(tái)頁(yè)面的請(qǐng)求:http://127.0.0.1:8000/admin 的路徑是 /admin
HttpRequest.method:請(qǐng)求方式 POST/GET
HttpRequest.encoding:請(qǐng)求提交的數(shù)據(jù)的編碼方式
HttpRequest.GET:獲取get方式表單中或url提交的數(shù)據(jù)
HttpRequest.POST:獲取post方式表單中或url提交的數(shù)據(jù)
HttpRequest.META:獲取的是一個(gè)標(biāo)準(zhǔn)的python字典。它包含了所有的HTTP請(qǐng)求信息
方法:
HttpRequest.get_host():請(qǐng)求的地址
HttpRequest.get_port():請(qǐng)求的端口
HttpRequest.get_full_path():請(qǐng)求的完整路徑,包括get參數(shù)
接收GET方式傳值
3、服務(wù)器端返回給客戶(hù)端的信息
屬性:
HttpResponse.content:響應(yīng)內(nèi)容
HttpResponse.status_code:響應(yīng)狀態(tài)碼
HttpResponse.content_type:響應(yīng)類(lèi)型(默認(rèn)是:text/html )
4、GET請(qǐng)求傳參和接收
Get請(qǐng)求是明文傳輸,信息附加在url上面。
在HttpRequest對(duì)象中,GET屬性是django.http.QueryDict 的實(shí)例,它是一個(gè)自定義的類(lèi)似字典的類(lèi),用來(lái)處理同一個(gè)鍵帶有多個(gè)值。這個(gè)類(lèi)的需求來(lái)自某些HTML 表單元素傳遞多個(gè)值給同一個(gè)鍵。
request.GET的QueryDict 在一個(gè)正常的請(qǐng)求/響應(yīng)循環(huán)中是不可變的。
例:接收URL通過(guò)GET方式傳輸過(guò)來(lái)的參數(shù),并打印到頁(yè)面上
①接收到參數(shù)
②通過(guò)response返回參數(shù)
·定義路由
·定義視圖函數(shù)
③進(jìn)行參數(shù)組合返回給頁(yè)面顯示
5、POST請(qǐng)求傳參和接收
POST相對(duì)于Get請(qǐng)求是安全的,所有信息附加在表單中。
在HttpRequest對(duì)象中,POST屬性是django.http.QueryDict 的實(shí)例,它是一個(gè)自定義的類(lèi)似字典的類(lèi),用來(lái)處理同一個(gè)鍵帶有多個(gè)值。這個(gè)類(lèi)的需求來(lái)自某些HTML 表單元素傳遞多個(gè)值給同一個(gè)鍵。
request.POST的QueryDict 在一個(gè)正常的請(qǐng)求/響應(yīng)循環(huán)中是不可變的。
例:通過(guò)postman(接口調(diào)試工具)模擬發(fā)送POST請(qǐng)求,傳輸參數(shù)并把參數(shù)打印到頁(yè)面
①postman發(fā)送數(shù)據(jù)
Tip:403 CSRF 禁止訪(fǎng)問(wèn)
解決方案一: 禁止關(guān)閉 CSRF 限制
②返回?cái)?shù)據(jù)信息
6、QueryDict對(duì)象
QueryDict.get(key, default=None)
QueryDict.getlist(key, default=None)
QueryDict.items()
QueryDict.lists()
猜你喜歡:
Django函數(shù)視圖和模板介紹
如何配置Django+HTTPS開(kāi)發(fā)環(huán)境?
Django框架環(huán)境安裝教程
Django框架中路由詳細(xì)介紹
Django數(shù)據(jù)庫(kù)連接的問(wèn)題
django文件上傳
Traefik2.0 如何實(shí)現(xiàn)灰度測(cè)試?
2019-12-12Centos6 通過(guò)kvm虛擬機(jī)安裝Windows XP系統(tǒng)圖文教程-[超詳細(xì)]
2019-12-12CentOS 下安裝oracle數(shù)據(jù)庫(kù)圖文教程【超級(jí)詳細(xì)】
2019-12-11百萬(wàn)電商系統(tǒng)從0到1架構(gòu)設(shè)計(jì)[linux運(yùn)維項(xiàng)目]
2019-12-05Django函數(shù)視圖和模板介紹[IT運(yùn)維]
2019-12-05阿里云kubernetes集群如何部署?[IT運(yùn)維培訓(xùn)]
2019-12-03