請求是指浏覽器通過HTTP協議發送給服務器端的數據,響應是指服務器端接收到請求後做相應的處理後再回復給浏覽器端的數據
請求中,最常見和常用的也是最重要的請求就是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的值
然後文本框隨便輸入一些
點擊提交:
後台輸出:
可以看到接收到了輸入的數據。