日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Django(part10)--POST请求

發(fā)布時(shí)間:2023/12/19 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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ù)器端
<form method="POST" action="/post_test/">兔兔姓名:<input name="bunnyname" type="text"><br>兔兔年齡:<input name="bunnyage" type="text"><br><input type="submit"> </form>

注意!在上面的例子中,參數(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)求
if request.method == "GET":處理1 elif request.method == "POST":處理2 else:處理3
  • 使用POST方式接收客戶(hù)端數(shù)據(jù)
request.POST['參數(shù)名'] request.POST.get('參數(shù)名', '') request.POST.getlist('參數(shù)名')

舉個(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。