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
MyProject > news > urls
http://127.0.0.1:8080/news/3/
视图函数使用默认值
urls.py
path('blog/', views.page),
path('blog/page/<int:num>/', views.page)
views.py
def page(request, num=1):
pass
在http://www.example.com/blog/的请求中,会调用views.page(request, num=1)视图函数
在http;//www.example.com/blog/page/2/的请求中,会调用views.page(reqeust, num=2)视图函数
传递额外参数给视图函数
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 方法。用法如下:
from django.views.decorators.http import require_GET
@require_GET()
def my_view(request):
pass
require_POST() 装饰器可以要求视图只接受 POST 方法。
require_safe() 装饰器可以要求视图只接收 GET 和 HEAD 方法。
require_http_methods(request_method_list) 装饰器可以要求视图只接受特定的请求方法
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET", "POST"])
def my_view(request):
pass