Django(part10)--POST请求
生活随笔
收集整理的這篇文章主要介紹了
Django(part10)--POST请求
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
學(xué)習(xí)筆記,僅供參考
文章目錄
- POST請(qǐng)求
- POST傳遞參數(shù)的獲取
- 舉個(gè)例子
- 取消CSRF驗(yàn)證
POST請(qǐng)求
POST傳遞參數(shù)的獲取
- 客戶(hù)端通過(guò)表單等POST請(qǐng)求將數(shù)據(jù)傳遞給服務(wù)器端
注意!在上面的例子中,參數(shù)action所對(duì)應(yīng)的路徑為提交表單的地址,它是一個(gè)相對(duì)路徑,是相對(duì)于當(dāng)前服務(wù)器所在地址的路徑 。這里,提交表單的絕對(duì)路徑是http://127.0.0.1:8000/post_test/
- 服務(wù)器端接收參數(shù)
- 通過(guò)request.method來(lái)判斷是否為POST請(qǐng)求
- 使用POST方式接收客戶(hù)端數(shù)據(jù)
舉個(gè)例子
views.py
def post_test(request):html = """<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>兔兔提交</title></head><body><form method="POST" action="/post_test/">兔兔姓名:<input name="bunnyname" type="text"><br>兔兔年齡:<input name="bunnyage" type="text"><br><input type="submit"></form></body></html>"""if request.method == "GET":return HttpResponse(html)elif request.method == "POST":bunnyname = request.POST['bunnyname']bunnyage = request.POST['bunnyage']postHtml = "您的姓名為" + bunnyname + ",年齡為" + bunnyagereturn HttpResponse(postHtml)else:return HttpResponse("其他方式")urls.py
urlpatterns = [path('admin/', admin.site.urls),re_path(r'post_test/$', views.post_test),]向http://127.0.0.1:8000/post_test/發(fā)起請(qǐng)求:
輸入要POST的信息:
點(diǎn)擊提交,出現(xiàn)403錯(cuò)誤:
我們看到CSRF驗(yàn)證失敗,請(qǐng)求被中斷,這時(shí),我們需要取消CSRF驗(yàn)證,這樣Django才不會(huì)拒絕客戶(hù)端發(fā)來(lái)的表求。
那么,該如何取消CSRF驗(yàn)證呢?
取消CSRF驗(yàn)證
我們可以注釋掉settings.py文件里MIDDLEWARE列表中的 CsrfViewMiddleware中間件:
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',#'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware', ]我們?cè)俅卧L問(wèn)http://127.0.0.1:8000/post_test/,輸入數(shù)據(jù),并提交:
成功啦!
總結(jié)
以上是生活随笔為你收集整理的Django(part10)--POST请求的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django(part9)--GET请求
- 下一篇: Django(part11)--MTV模