Skip to content

视图层 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 更常用于服务端保存登录状态

类视图

当视图逻辑变复杂后,可以用类视图提高复用性和结构清晰度。

Built with VitePress.