限制请求:
from django.views.decorators.http import require_http_methods, require_POST, require_GET, require_safe
限制只有post,get请求可以访问index视图函数
@require_http_methods([''POST, 'GET'])
def index(request):
pass
#限制只有post请求可以访问index视图函数
@require_POST
defe index(request):
pass
#限制只有get请求可以访问index视图函数
@require_GET
defe index(request):
pass
@require_safe等价于@require_http_methods(['GET', 'HEAD'])
QueryDict对象:
from django.http.request import QueryDict
querydict本质上也是dict,request.POST和request.GET都是querydict对象
方法:
get():获取key对应的值,只获取一个
getlist():获取key对应的值,多个
HttpResponse对象:
django服务器在接收到客户端发送过来的请求之后,会将提交过来的这些数据封装成HttpRequest对象发送给视图函数,视图函数处理完相关逻辑,也会返回一个响应,而这个响应就是HttpResponseBase类及其子类, 如HttpResponse,用的比较少
@require_http_methods(['GET', 'POST']) # 知识点1
def add_article(request):
if request.method == 'GET':
return render(request, 'article.html', locals())
else:
form = ArticleForm(request.POST)
if form.is_valid():
title = form.cleaned_data.get('title')
content = form.cleaned_data.get('content')
price = form.cleaned_data.get('price')
tags_list = request.POST.getlist('tags')
print(tags_list) # 知识点2
return HttpResponse('添加成功!')
else:
print(form.errors.get_json_data())
return HttpResponse(content='添加失败!', content_type='text/plain;charset=utf-8')
JsonHttpResponse:
传递json格式的数据给前台:
中文乱码的话记得加参数: json_dumps_params={‘ensure_ascii’:False}
一般我们都是把针对字典来进行转成Json,如果我们想把非字典转换成json,我们就需要添加参数safe=False
@require_http_methods(['GET', 'POST'])
def add_user(request):
if request.method == 'GET':
return render(request, 'user.html',