Django上传文件:测试请求== POST或使用装饰器?

时间:2015-06-25 15:06:24

标签: python django

我刚在django doc中读过这篇文章:

  

请注意,如果请求方法是POST

,request.FILES将只包含数据

在给出的例子中,他们喜欢这样:

def upload_file(request):
    if request.method == 'POST':

我之前刚刚读过,我们可以使用django的装饰器,如:

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

甚至有一个叫@require_post()

这是关于语法的问题,我想知道:

  1. 如果我使用装饰器,如果我没有通过POST请求,它会在执行前停止该功能吗?
  2. 如果1)是真的,那么装饰者的选择是不是很多' python cool' ?
  3. 提前致谢。

    无敌

1 个答案:

答案 0 :(得分:1)

  

django.views.decorators.http中的装饰器可用于根据请求方法限制对视图的访问。如果不满足条件,这些装饰器将返回django.http.HttpResponseNotAllowed。

View decorators

对于2,if request.method == 'POST'完全没问题,并且在基于函数的视图中使用。