對(duì)Django 中request.get和request.post的區(qū)別詳解
Django 中request.get和request.post的區(qū)別
POST和GET差異:
POST和GET是HTTP協(xié)議定義的與服務(wù)器交互的方法。GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。另外,還有PUT和DELETE方法。
POST和GET都可以與服務(wù)器完成查,改,增,刪操作。
GET提交,請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后,以?分割URL和傳輸數(shù)據(jù),多個(gè)參數(shù)用&連接;
POST提交,把提交的數(shù)據(jù)放置在HTTP包的包體中;因此,GET提交的數(shù)據(jù)會(huì)在地址欄中顯示出來(lái),而POST提交,地址欄不會(huì)改變。
GET屬性
1、QueryDict類型的對(duì)象
2、包含get請(qǐng)求方式的所有參數(shù)
3、與url請(qǐng)求地址中的參數(shù)對(duì)應(yīng),位于?后面
4、參數(shù)的格式是鍵值對(duì),如key1=value1
5、多個(gè)參數(shù)之間,使用&連接,如key1=value1&key2=value2
6、鍵是開(kāi)發(fā)人員定下來(lái)的,值是可變的
示例如下
創(chuàng)建視圖getTest1用于定義鏈接,getTest2用于接收一鍵一值,getTest3用于接收一鍵多值
def getTest1(request): return render(request,'booktest/getTest1.html') def getTest2(request): return render(request,'booktest/getTest2.html') def getTest3(request): return render(request,'booktest/getTest3.html')
**配置url
url(r'^getTest1/$', views.getTest1), url(r'^getTest2/$', views.getTest2), url(r'^getTest3/$', views.getTest3),
**創(chuàng)建getTest1.html,定義鏈接
<html> <head> <title>Title</title> </head> <body> 鏈接1:一個(gè)鍵傳遞一個(gè)值 <a href="/getTest2/?a=1&b=2" rel="external nofollow" >gettest2</a><br> 鏈接2:一個(gè)鍵傳遞多個(gè)值 <a href="/getTest3/?a=1&a=2&b=3" rel="external nofollow" >gettest3</a> </body> </html>
**完善視圖getTest2的代碼
def getTest2(request):
a=request.GET['a']
b=request.GET['b']
context={'a':a,'b':b}
return render(request,'booktest/getTest2.html',context)
**創(chuàng)建getTest2.html,顯示接收結(jié)果
<html>
<head>
<title>Title</title>
</head>
<body>
a:{{ a }}<br>
b:{{ b }}
</body>
</html>
**完善視圖getTest3的代碼
def getTest3(request):
a=request.GET.getlist('a')
b=request.GET['b']
context={'a':a,'b':b}
return render(request,'booktest/getTest3.html',context)
**創(chuàng)建getTest3.html,顯示接收結(jié)果
<html>
<head>
<title>Title</title>
</head>
<body>
a:{% for item in a %}
{{ item }}
{% endfor %}
<br>
b:{{ b }}
</body>
</html>
POST屬性
1、QueryDict類型的對(duì)象
2、包含post請(qǐng)求方式的所有參數(shù)
3、與form表單中的控件對(duì)應(yīng)
4、問(wèn):表單中哪些控件會(huì)被提交?
答:控件要有name屬性,則name屬性的值為鍵,value屬性的值為鍵,構(gòu)成鍵值對(duì)提交。
對(duì)于checkbox控件,name屬性一樣為一組,當(dāng)控件被選中后會(huì)被提交,存在一鍵多值的情況,鍵是開(kāi)發(fā)人員定下來(lái)的,值是可變的
示例如下
定義視圖postTest1
def postTest1(request): return render(request,'booktest/postTest1.html')
**配置url
url(r'^postTest1$',views.postTest1)
**創(chuàng)建模板postTest1.html
<html> <head> <title>Title</title> </head> <body> <form method="post" action="/postTest2/"> 姓名:<input type="text" name="uname"/><br> 密碼:<input type="password" name="upwd"/><br> 性別:<input type="radio" name="ugender" value="1"/>男 <input type="radio" name="ugender" value="0"/>女<br> 愛(ài)好:<input type="checkbox" name="uhobby" value="吃"/>吃 <input type="checkbox" name="uhobby" value="笑"/>笑 <input type="checkbox" name="uhobby" value="酒"/>酒 <input type="checkbox" name="uhobby" value="爬山"/>爬山<br> <input type="submit" value="提交"/> </form> </body> </html>
**創(chuàng)建視圖postTest2接收請(qǐng)求的數(shù)據(jù)
def postTest2(request):
uname=request.POST['uname']
upwd=request.POST['upwd']
ugender=request.POST['ugender']
uhobby=request.POST.getlist('uhobby')
context={'uname':uname,'upwd':upwd,'ugender':ugender,'uhobby':uhobby}
return render(request,'booktest/postTest2.html',context)
**配置url
url(r'^postTest2$',views.postTest2)
**創(chuàng)建模板postTest2.html
<html>
<head>
<title>Title</title>
</head>
<body>
{{ uname }}<br>
{{ upwd }}<br>
{{ ugender }}<br>
{{ uhobby }}
</body>
</html>
以上這篇對(duì)Django 中request.get和request.post的區(qū)別詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)進(jìn)度條和系統(tǒng)通知的示例詳解
這篇文章主要和大家分享兩個(gè)有意思的Python小工具,可以優(yōu)雅地實(shí)現(xiàn)進(jìn)度條和系統(tǒng)通知,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴快也跟隨小編一起學(xué)習(xí)一下2023-11-11
Python的Asyncore異步Socket模塊及實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的例子
asyncore模塊是封裝過(guò)的處理socket事件的模塊,采用異步的處理方式,這里我們講來(lái)講解Python的Asyncore異步Socket模塊及實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的例子,需要的朋友可以參考下2016-06-06
python中format()函數(shù)的簡(jiǎn)單使用教程
python中format函數(shù)用于字符串的格式化,接下來(lái)通過(guò)本文給大家介紹python中format()函數(shù)的簡(jiǎn)單使用教程,一起看看吧2018-03-03
Pytorch固定隨機(jī)數(shù)種子的方法小結(jié)
在對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時(shí),有時(shí)候會(huì)存在對(duì)訓(xùn)練過(guò)程進(jìn)行復(fù)現(xiàn)的需求,然而,每次運(yùn)行時(shí) Pytorch、Numpy 中的隨機(jī)性將使得該目的變得困難重重,基于此,本文記錄了 Pytorch 中的固定隨機(jī)數(shù)種子的方法,需要的朋友可以參考下2023-12-12
Python入門(mén)學(xué)習(xí)之類的相關(guān)知識(shí)總結(jié)
今天帶大家復(fù)習(xí)python的基礎(chǔ)知識(shí),文中對(duì)類的相關(guān)知識(shí)作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05
修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題(完美解決)
我們一直使用python-memcached庫(kù)來(lái)操作memcached,最近發(fā)現(xiàn)在python3.8的環(huán)境中,代碼會(huì)報(bào)錯(cuò),下面通過(guò)本文給大家講解修復(fù)python-memcached在python3.8環(huán)境中報(bào)SyntaxWarning的問(wèn)題及解決方法,需要的朋友可以參考下2022-08-08
Python實(shí)現(xiàn)繪制雙柱狀圖并顯示數(shù)值功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)繪制雙柱狀圖并顯示數(shù)值功能,涉及Python數(shù)值運(yùn)算及基于matplotlib的圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
Python生態(tài)圈圖像格式轉(zhuǎn)換問(wèn)題(推薦)
在Python生態(tài)圈里,最常用的圖像庫(kù)是PIL——盡管已經(jīng)被后來(lái)的pillow取代,但因?yàn)閜illow的API幾乎完全繼承了PIL,所以大家還是約定俗成地稱其為PIL。這篇文章主要介紹了Python生態(tài)圈圖像格式轉(zhuǎn)換問(wèn)題,需要的朋友可以參考下2019-12-12

