Django 视图层
from django.shortcuts import render, HttpResponse, redirect
from django.http import JsonResponse
1. render: 渲染模板
def index(request): print(reverse('index')) return render(request, "index.html")
return render(request, 'index.html', context={'name': 'lisi'})
return render(request, 'index.html', context, status=200)
context = { 'status': 200, 'name': 'lisi', 'age': 20 } return render(request, 'index.html', context)
2. HttpResponse: 返回字符串
def index(request): print(reverse('index')) return HttpResponse("我是index")
3. redirect: 重定向
def index(request): print(reverse('index')) return redirect(reverse('user')) def user(request): return HttpResponse("我是user")
4. JsonResponse: 返回jsonResponse响应
def test_json(request): return JsonResponse(list(range(10)))
设置 safe为 false 可以序列化列表
def test_json(request): return JsonResponse(list(range(10)), safe=False)
def test_json(request): return JsonResponse({"name": "张三", "age": 18})
json_dumps_params={'ensure_ascii': False} 可以改变乱码
def test_json(request): return JsonResponse({"name": "张三", "age": 18}, json_dumps_params={'ensure_ascii': False} )
5. request对象
request.GET
: 获取通过 GET 请求传递的参数。request.POST
: 获取通过 POST 请求提交的数据。request.COOKIES
: 获取请求中的 cookies 数据。request.META
: 获取 HTTP 请求头和其他元数据。request.FILES
: 获取上传的文件。request.path
: 获取请求的 URL 路径部分。request.path_info
: 获取去除 URL 前缀后的请求路径。request.method
: 获取请求的 HTTP 方法(如 GET、POST 等)。request.user
提供了当前登录用户的信息。request.session
用于存储和访问会话数据。
request.is_ajax()
(已弃用,从 Django 3.1 起) 检查当前请求是否是一个 AJAX 请求。
request.is_secure()
判断请求是否是通过 HTTPS 安全协议发送的。
6. 源码中找属性和方法