程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Django框架之GET請求和POST請求簡介

編輯:Python

文章目錄

  • 請求與響應
  • GET請求和POST請求

請求與響應

請求是指浏覽器通過HTTP協議發送給服務器端的數據,響應是指服務器端接收到請求後做相應的處理後再回復給浏覽器端的數據

GET請求和POST請求

請求中,最常見和常用的也是最重要的請求就是GET請求和POST請求了,各自有優勢,前者較快,後者較安全。

由於Django有一定的安全保護措施,目前為了方便看到POST的請求,可以關掉django的csrf驗證。
在配置文件setting.py中將csrf驗證注釋即可

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',
]

下面也是通過一個數據傳輸打印的小例子來理解。

urls.py:

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path("test_get_post", views.test_get_post),
]

views.py:

from django.http import HttpResponse
POST_FORM = ''' <form method="post" action="/test_get_post"> 用戶名:<input type="text" name="uname"> <input type="submit" value="提交"> </form> '''
def test_get_post(request):
if request.method == "GET":
print(request.GET.get("a", "no a"))
print(request.GET.get("c", "no c"))
print(request.GET.getlist("a"))
return HttpResponse(POST_FORM)
elif request.method == "POST":
# 處理用戶提交數據
print(request.POST["uname"])
print(request.POST.get("c", "no c"))
print(request.POST.getlist("uname"))
return HttpResponse("post is ok")
else:
pass
return HttpResponse("test get post")

配置好訪問
http://127.0.0.1:8000/test_get_post?a=100&c=5505
得到:

然後後台輸出:


可以看到接收到了a和b的值
然後文本框隨便輸入一些

點擊提交:

後台輸出:

可以看到接收到了輸入的數據。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved