django笔记
程序员文章站
2022-06-22 12:54:45
装饰器: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方法
上一篇: 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
下一篇: python 列表 元组