请求是指浏览器通过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的值
然后文本框随便输入一些
点击提交:
后台输出:
可以看到接收到了输入的数据。