欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

django笔记

程序员文章站 2022-04-14 17:01:46
装饰器:require_http_method() 当然你可以在视图函数内丢弃那些期望之外的请求(比如上例中的POST /report/1234/), 但更简单的做法是使用Django预置的require_http_methods(methods)装饰器进行限制, 让框架帮你拦截那些不想要的请求。 ......

装饰器:require_http_method()

当然你可以在视图函数内丢弃那些期望之外的请求(比如上例中的post /report/1234/), 但更简单的做法是使用django预置的require_http_methods(methods)装饰器进行限制, 让框架帮你拦截那些不想要的请求。

例如,下面的示例声明了视图函数v_login()只支持get和post方法:

from django.views.decorators.http import require_http_methods
@require_http_methods(['get','post'])
def v_login(request):pass

这时,如果用户试图使用其他http方法(比如delete)请求指向这个视图函数的url, django框架将自动拦截并返回405错误 —— 在http协议中,405代码表示:请求的方法 不被允许。

有几个语法糖可以缩短require_http_method()这个装饰器的书写长度:

require_get() - 声明被装饰的视图仅支持get方法
require_post() - 声明被装饰的视图仅支持post方法
require_safe() - 声明被装饰的视图仅支持get和head方法