【Django基础】视图层

发布时间 2023-11-25 11:49:26作者: 小C学安全

视图函数

HttpResponse()

作用:接收一个字符串并返回

def index_func(request):
    url = reverse('app01_view_index')
    print(url)
    return HttpResponse('app01 的index')

render

作用:返回html页面,并且在返回给浏览器之前还可以给html文件传值

render()有多个参数,其中第一个参数为返回request请求对象,其他参数则用于返回HTML文档及其局部命名空间内变量用作模板渲染。

参数 内容
request 用于生成响应的请求对象
template_name 要使用的模板的完整名称,可选的参数
context 添加到模板上下文的一个字典 默认是一个空字典 如果字典中的某个值是可调用的,视图将在渲染模板之前调用它 局部命名空间变量(字典形式从换入),或locals()函数
def home_func(request):
    return render(request, 'HomePage.html')

redirect

作用:接收一个url并返回,状态码为302,也就是重定向

JsonResponse

前后端数据交互需要使用到json格式数据作为过渡,实现跨语言传输数据

####1.json模块进行序列化
虽然python中为我们准备了json格式的序列化的模块json,但是当我们通过自带的json模块进行序列化展示到浏览器上的时候,
def json_func(request):
    data_dict = {'test_content': 'about JsonResponse ', 'age': 22, '爱好': '放空'}
    import json
    json_data = json.dumps(data_dict, ensure_ascii=False)
    return HttpResponse(json_data)

2.JsonResponse

Jsonresponse是Django中自带的一个基于json模块的封装,可以直接返回json类型的数据至模板层的前端页面

浏览器会对这个JsonResponse方法返回的json格式数据更有亲和力,可以当成json字符串渲染
(1)实例

from django.http import JsonResponse
 
def json_func(request):
    data_dict = {'test_content': 'about JsonResponse ', 'age': 22, '爱好': '放空'}
    return JsonResponse(data_dict)