定义
无论是GET还是POST,统一都由视图函数接收请求,通过判断reques.method区分具体的请求动作
样例:
if request.method == 'GET':
处理GET请求时的业务逻辑
elif request.method == 'POST':
处理POST请求时的业务逻辑
else:
其他请求的业务逻辑
1、GET处理
- GET请求动作,一般用于向服务器获取数据
能够产生GET请求的场景:
- 浏览器地址栏中输入URL,回车后
- form表单中的method为get
GET请求方式中,如果有少量数据需要传递给服务器,通常会用查询字符串(Query String)传递
- 注意:不要传递敏感数据
- URL格式:xxx?参数名1=值1&参数名2=值2…
- 如:http://127.0.0.1:8000/page1?a=100&b=200
- 服务器端接收参数
- 获取客户端请求的GET请求提交的数据
2、POST处理
- POST请求动作,一般用于向服务器提交大量/隐私数据
- Django处理POST请求,专用于浏览器提交数据
- 客户端通过表单等POST请求将数据传递给服务器端,如下
- 服务器端接收参数
- 通过request.method来判断是否为POST请求,如下
-
取消csrf验证
- CSRF(Cross-site request forgery)跨站请求伪造
- 禁止掉 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',
'user.middle_wares.ArticleMiddleWare', # 我们自定义的中间件
]