首頁技術(shù)文章正文

Django請求和響應(yīng)設(shè)置圖文教程

更新時(shí)間:2019-12-12 來源:黑馬程序員 瀏覽量:

1、快速實(shí)現(xiàn)

①定義路由 urls.py

②定義視圖函數(shù) views.py

·······

③模型數(shù)據(jù)調(diào)用 創(chuàng)建表

④包含模板 加載模板(html····)
1.1、路由定義

1576142541193_Django的請求和響應(yīng)01.jpg

1576142551623_Django的請求和響應(yīng)02.jpg

1576142560506_Django的請求和響應(yīng)03.jpg

1.2、編寫視圖

1576142587801_Django的請求和響應(yīng)04.jpg

1576142603616_Django的請求和響應(yīng)05.jpg


1.3、瀏覽器訪問

1576142613435_Django的請求和響應(yīng)06.jpg

到這里,就完成了一個(gè)頁面請求。


2、請求

https://docs.djangoproject.com/zh-hans/2.1/ref/request-response/

客戶端請求服務(wù)器端攜帶的信息

屬性:

HttpRequest.scheme:請求的方式,即http或者是https

HttpRequest.body:請求的主體,返回的是一個(gè)字符串

HttpRequest.path:請求的路徑,這里的路徑是指相對路徑,也就是說一個(gè)登陸后臺頁面的請求:http://127.0.0.1:8000/admin 的路徑是 /admin 

HttpRequest.method:請求方式 POST/GET

HttpRequest.encoding:請求提交的數(shù)據(jù)的編碼方式

HttpRequest.GET:獲取get方式表單中或url提交的數(shù)據(jù)

HttpRequest.POST:獲取post方式表單中或url提交的數(shù)據(jù)

HttpRequest.META:獲取的是一個(gè)標(biāo)準(zhǔn)的python字典。它包含了所有的HTTP請求信息

方法:

HttpRequest.get_host():請求的地址

HttpRequest.get_port():請求的端口

HttpRequest.get_full_path():請求的完整路徑,包括get參數(shù)

1576142624013_Django的請求和響應(yīng)07.jpg

1576142635555_Django的請求和響應(yīng)08.jpg

接收GET方式傳值

1576142647055_Django的請求和響應(yīng)09.jpg

1576142658559_Django的請求和響應(yīng)10.jpg


3、服務(wù)器端返回給客戶端的信息


屬性:

HttpResponse.content:響應(yīng)內(nèi)容

HttpResponse.status_code:響應(yīng)狀態(tài)碼

HttpResponse.content_type:響應(yīng)類型(默認(rèn)是:text/html )

1576142669281_Django的請求和響應(yīng)11.jpg

1576142680860_Django的請求和響應(yīng)12.jpg

4、GET請求傳參和接收

Get請求是明文傳輸,信息附加在url上面。

在HttpRequest對象中,GET屬性是django.http.QueryDict 的實(shí)例,它是一個(gè)自定義的類似字典的類,用來處理同一個(gè)鍵帶有多個(gè)值。這個(gè)類的需求來自某些HTML 表單元素傳遞多個(gè)值給同一個(gè)鍵。

request.GET的QueryDict 在一個(gè)正常的請求/響應(yīng)循環(huán)中是不可變的。

例:接收URL通過GET方式傳輸過來的參數(shù),并打印到頁面上

①接收到參數(shù)

②通過response返回參數(shù)

·定義路由

1576142739509_Django的請求和響應(yīng)13.jpg


·定義視圖函數(shù)

1576142754346_Django的請求和響應(yīng)14.jpg

1576142806615_Django的請求和響應(yīng)15.jpg


③進(jìn)行參數(shù)組合返回給頁面顯示

1576142817068_Django的請求和響應(yīng)16.jpg


5、POST請求傳參和接收

POST相對于Get請求是安全的,所有信息附加在表單中。

在HttpRequest對象中,POST屬性是django.http.QueryDict 的實(shí)例,它是一個(gè)自定義的類似字典的類,用來處理同一個(gè)鍵帶有多個(gè)值。這個(gè)類的需求來自某些HTML 表單元素傳遞多個(gè)值給同一個(gè)鍵。

request.POST的QueryDict 在一個(gè)正常的請求/響應(yīng)循環(huán)中是不可變的。

例:通過postman(接口調(diào)試工具)模擬發(fā)送POST請求,傳輸參數(shù)并把參數(shù)打印到頁面

①postman發(fā)送數(shù)據(jù)

1576142833431_Django的請求和響應(yīng)17.jpg

Tip:403 CSRF 禁止訪問

解決方案一: 禁止關(guān)閉 CSRF 限制

1576142846304_Django的請求和響應(yīng)18.jpg

②返回?cái)?shù)據(jù)信息

1576142863207_Django的請求和響應(yīng)19.jpg

1576142873753_Django的請求和響應(yīng)20.jpg


6、QueryDict對象

QueryDict.get(key, default=None)

QueryDict.getlist(key, default=None)

1576142885984_Django的請求和響應(yīng)21.jpg

QueryDict.items()

QueryDict.lists()

1576142902013_Django的請求和響應(yīng)22.jpg


猜你喜歡:
Django函數(shù)視圖和模板介紹
如何配置Django+HTTPS開發(fā)環(huán)境?
Django框架環(huán)境安裝教程
Django框架中路由詳細(xì)介紹
Django數(shù)據(jù)庫連接的問題
django文件上傳

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!