视图层 View
视图层是 Django 处理请求和返回响应的核心位置。
视图到底做什么
你可以把视图理解成:
“浏览器发来一个请求后,Django 交给某个 Python 函数或类去处理,然后再返回结果。”
一个最基础的视图
python
from django.http import HttpResponse
def index(request):
return HttpResponse("你好,Django")如果访问这个视图,浏览器会直接显示:
text
你好,Django处理请求
视图首先会拿到 request 对象。
这个对象里包含了很多重要信息,例如:
- 请求方法
- 请求路径
- GET 参数
- POST 参数
获取 GET 参数
python
def search(request):
keyword = request.GET.get("q")
return HttpResponse(f"你搜索的是:{keyword}")如果访问:
text
/search/?q=python页面会显示:
text
你搜索的是:python获取 POST 参数
python
def submit(request):
username = request.POST.get("username")
return HttpResponse(username)返回不同类型的响应
视图不止能返回文本,还能返回:
- HTML 页面
- JSON 数据
- 重定向
返回 JSON
python
from django.http import JsonResponse
def user_info(request):
return JsonResponse({"name": "小明", "age": 18})GET、POST、AJAX
初学阶段你至少要先分清:
GET常用于获取数据POST常用于提交数据- AJAX 常用于异步获取数据
Cookie 和 session
这两个概念在用户登录和状态保存时非常重要:
- Cookie 存在浏览器端
- session 更常用于服务端保存登录状态
类视图
当视图逻辑变复杂后,可以用类视图提高复用性和结构清晰度。