版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/abc666666_6/article/details/83963017
常用的请求method
- GET请求: 一般用来向服务器索取数据,但是不会向服务器提交数据,不会对服务器的状态进行更改。
- POST请求:一般是用来向 服务器提交数据,会对服务器的状态进行更改。
限制请求装饰器
Django
内置的视图装饰器可以给视图提供一些限制。比如限制某个视图只能通过GET
的method
访问等。以下是一些常用的内置视图装饰器。
-
django.views.decorators.http.require_http_methods
:这个装饰器需要传递一个允许访问的方法的列表。比如只能通过GET
的方式访问。那么示例代码如下:from django.views.decorators.http import require_http_methods @require_http_methods(["GET"]) def index(request): pass
-
django.views.decorators.http.require_GET
:这个装饰器相当于是require_http_methods(['GET'])
的简写形式,只允许使用GET
的method
来访问视图。示例代码如下:from django.views.decorators.http import require_GET @require_GET def index(request): pass
-
django.views.decorators.http.require_POST
:这个装饰器相当于是require_http_methods(['POST'])
的简写形式,只允许使用POST
的method
来访问视图。示例代码如下:from django.views.decorators.http import require_POST @require_POST def index(request): pass
-
django.views.decorators.http.require_safe
:这个装饰器相当于是require_http_methods(['GET','HEAD'])
的简写形式,只允许使用相对安全的方式来访问视图。因为GET
和HEAD
不会对服务器产生增删改的行为。因此是一种相对安全的请求方式。示例代码如下:from django.views.decorators.http import require_safe @require_safe def index(request): pass
-
可以使用装饰器限制请求类型,并且利用已有的类型进行各自操作
from django.views.decorators.http import require_http_methods @require_http_method(['GET', 'POST']) def index(request): if request.method == 'GET': pass else: pass