1. 程式人生 > >Django2.0-views(1)-限制請求裝飾器

Django2.0-views(1)-限制請求裝飾器

常用的請求method

  1. GET請求: 一般用來向伺服器索取資料,但是不會向伺服器提交資料,不會對伺服器的狀態進行更改。
  2. POST請求:一般是用來向 伺服器提交資料,會對伺服器的狀態進行更改。

限制請求裝飾器

Django內建的檢視裝飾器可以給檢視提供一些限制。比如限制某個檢視只能通過GETmethod訪問等。以下是一些常用的內建檢視裝飾器。

  1. 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
  2. django.views.decorators.http.require_GET:這個裝飾器相當於是require_http_methods(['GET'])的簡寫形式,只允許使用GETmethod來訪問檢視。示例程式碼如下:

     from django.views.decorators.http import require_GET
    
     @require_GET
     def index(request)
    : pass
  3. django.views.decorators.http.require_POST:這個裝飾器相當於是require_http_methods(['POST'])的簡寫形式,只允許使用POSTmethod來訪問檢視。示例程式碼如下:

     from django.views.decorators.http import require_POST
    
     @require_POST
     def index(request):
         pass
    
  4. django.views.decorators.http.require_safe:這個裝飾器相當於是require_http_methods(['GET','HEAD'])

    的簡寫形式,只允許使用相對安全的方式來訪問檢視。因為GETHEAD不會對伺服器產生增刪改的行為。因此是一種相對安全的請求方式。示例程式碼如下:

     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