常用的请求method:
- GET请求:GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改。比如向服务器获取某篇文章的详情。
- POST请求:POST请求一般是用来向服务器提交数据,会对服务器的状态进行更改。比如提交一篇文章给服务器。
限制请求装饰器:
Django
内置的视图装饰器可以给视图提供一些限制。比如这个视图只能通过GET
的method
访问等。
django.http.decorators.http.require_http_methods
:
这个装饰器需要传递一个允许访问的方法的列表。比如只能通过GET
的方式访问。那么示例代码如下:
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET","POST"])
def my_view(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 my_view(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 my_view(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 my_view(request):
pass