https://docs.djangoproject.com/zh-hans/3.2/topics/http/views/
https://docs.djangoproject.com/zh-hans/3.2/ref/request-response/

一个视图函数(或简称为视图)是一个 Python 函数,它接受 Web 请求并返回一个 Web 响应。
这个响应可以是 Web 页面的 HTML 内容,或者重定向,或者404错误,或者 XML 文档,或一个图片…或是任何内容。

MyProject > news > views
image.png
MyProject > news > urls
image.png
http://127.0.0.1:8080/news/3/
image.png

视图函数使用默认值

urls.py

  1. path('blog/', views.page),
  2. path('blog/page/<int:num>/', views.page)

views.py

  1. def page(request, num=1):
  2. pass

http://www.example.com/blog/的请求中,会调用views.page(request, num=1)视图函数
在http;//www.example.com/blog/page/2/的请求中,会调用views.page(reqeust, num=2)视图函数

传递额外参数给视图函数

  1. path('blog/<int:year>/', views.year_archive, {'foo':'bar'})

http://www.example.com/blog/2019/的请求中,会调用views.year_archive(request, year=2019, foo=’bar’)视图函数

视图装饰器

https://docs.djangoproject.com/zh-hans/3.2/topics/http/decorators/

限制HTTP方法

在 django.views.decorators.http 中的装饰器可以用来根据请求方法来限制对视图的访问。如果条件不满足,这些装饰器将返回 django.http.HttpResponseNotAllowed 。

require_GET() 装饰器 要求视图只接受 GET 方法。用法如下:

  1. from django.views.decorators.http import require_GET
  2. @require_GET()
  3. def my_view(request):
  4. pass

require_POST() 装饰器可以要求视图只接受 POST 方法。

require_safe() 装饰器可以要求视图只接收 GET 和 HEAD 方法。

require_http_methods(request_method_list) 装饰器可以要求视图只接受特定的请求方法

  1. from django.views.decorators.http import require_http_methods
  2. @require_http_methods(["GET", "POST"])
  3. def my_view(request):
  4. pass

GZip压缩

Vary头

缓存