View 装饰器

Django.views.decorators.http

 

  包里的装饰器可以基于请求的方法来限制对视图的访问。若条件不满足会返回django.http.HttpResponseNotAllowed。

  require_http_methods(request_method_list)

require_GET = require_http_methods(["GET"])
require_GET.__doc__ = "Decorator to require that a view only accepts the GET method."

require_POST = require_http_methods(["POST"])
require_POST.__doc__ = "Decorator to require that a view only accepts the POST method."

require_safe = require_http_methods(["GET", "HEAD"])
require_safe.__doc__ = "Decorator to require that a view only accepts safe methods: GET and HEAD."

  示例:

from django.views.decorators.http import require_http_methods

@require_http_methods(["GET", "POST"])
def my_view(request):
    # I can assume now that only GET or POST requests make it this far
    # ...
    pass


from django.views.decorators.http import require_GET, require_POST

@require_POST
def index(request):
    v = request.session.get("username")
    if v:
        return render_to_response("home.html")
    return redirect(reverse("login"))
View Code

 

posted @ 2017-05-31 22:23  Vincen_shen  阅读(326)  评论(0)    收藏  举报