Django2.0-views(1)-限制請求裝飾器
阿新 • • 發佈:2018-12-20
常用的請求method
- GET請求: 一般用來向伺服器索取資料,但是不會向伺服器提交資料,不會對伺服器的狀態進行更改。
- POST請求:一般是用來向 伺服器提交資料,會對伺服器的狀態進行更改。
限制請求裝飾器
Django
內建的檢視裝飾器可以給檢視提供一些限制。比如限制某個檢視只能通過GET
的method
訪問等。以下是一些常用的內建檢視裝飾器。
-
django.views.decorators.http.require_http_methods
:這個裝飾器需要傳遞一個允許訪問的方法的列表。比如只能通過GET
的方式訪問。那麼示例程式碼如下:from django.views.decorators.
-
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)
-
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