文章目录
一、视图层
1.视图函数返回值的问题
当视图函数返回为一个空的时候会报错
def index(request):
# return HttpResponse('is index!')
return None
把上面一句话翻译过来就是视图函数必须返回一个HttpResponse对象
2.三板斧的使用
HttpResponse: 字符串
render:渲染html页面
redirect:重定向的
1.HttpResponse
class HttpResponse(HttpResponseBase):
pass
# 括号内直接跟一个具体的字符串作为响应体
2.render
def render(request, template_name, context=None, content_type=None, status=None, using=None):
request: 用于生成响应的请求对象。
template_name:要使用的模板的完整名称,可选的参数
context:添加到模板上下文的一个字典。默认是一个空字典。如果字典中的某个值是可调用的,视图将在渲染模板之前调用它。
render方法就是将一个模板页面中的模板语法进行渲染,最终渲染成一个html页面作为响应体。
content = loader.render_to_string(template_name, context, request, using=using)
return HttpResponse(content, content_type, status)
3.redirect
def redirect(to, *args, permanent=False, **kwargs):
传递要重定向的一个硬编码的URL或者路由
redirect_class = HttpResponsePermanentRedirect if permanent else HttpResponseRedirect
return redirect_class(resolve_url(to, *args, **kwargs))
eg: redirect内部是继承了HttpRespone类
结论:在视图文件中写视图函数的时候不能没有返回值,默认返回的是None,但是页面上会报错,用来处理请求的视图函数都必须返回httpResponse对象。
二、JsonReponse序列化类的使用
前后端数据交互需要使用json作为序列化,实现跨语言数据传输。
- 混合开发项目:前端页面和后端代码写到一块
- 前后端分离项目:前端是一个项目,后端是一个项目,后端只需要写接口
前端序列化:JSON.stringify(),JSON.parse()
后端序列化:json.dumps(), json.loads()
1.json序列化
# 导入模块
import json
<