繁体   English   中英

Python请求403错误

[英]Python Requests 403 Error

我想将文件上传到已为其编写了一个简单客户端文件的Web服务器。

client.py

import requests
def main():
    url_link = "http://localhost:8000/Home/UploadFile/"
    fileObj= open('VOI-0204.zip', 'rb')
    r=requests.post(url_link, files={'docfile': fileObj})
    print r.text
if __name__ == '__main__':
    main()

django url映射器声明如下:

urls.py

url(r'^Home/UploadFile/$', 'WebApp.views.uploadZip', name='uploadZip'),

每次我运行client.py时,都会出现这样的403错误。

[29/Aug/2015 10:28:02] "POST /Home/UploadFile/ HTTP/1.1" 403 2282

但是如果我这样更改客户端文件中的url_link

url_link = "http://localhost:8000/Home/UploadFile"

现在显示这样的服务器错误[500]

[29/Aug/2015 10:33:32] "POST /Home/UploadFile HTTP/1.1" 500 63766

有任何想法吗??

Django希望在每个POST请求中使用CSRF令牌。 为了使此脚本成功运行,请使用csrf_exempt装饰器装饰您的视图。 检查一下 尽管我不建议您走这条路。 CSRF令牌可为您提供保护。

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def upload_zip(request):
...

您需要在视图中添加csrf令牌,如果使用的是表单,请添加{%csrf_token%}。 如果需要执行ajax请求,则需要实现一些javascript代码。 Django官方文档对此有一些不错的文章,您可以参阅https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM