簡體   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