在使用requests模块向Django vi发布数据的情况下,如何提供csrf保护

2024-04-26 17:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型,如下所示:

class UserProfileForm(forms.ModelForm):
    class Meta:
        model = FileUploads
        fields = ['uploads']

这样的观点:

^{pr2}$

我有一个简单的脚本来向视图发送一个多部分/编码的文件:

import requests
f = open('C:\\Users\\myname\\Desktop\\image.jpg', 'rb')
urls='http://localhost:8000/upper'
r=requests.post(urls, files= {'uploads':f})
print(r.status_code)

我的问题是:只要在接收视图上方有csrrf_exemptive decorator,一切都可以正常工作,这对于测试环境来说就可以了。但是如果我想要csrf保护呢?考虑到我使用的是请求模块,如何提供csrf令牌?在


Tags: 模型视图fieldsmodelformsrequestsurlscsrf
1条回答
网友
1楼 · 发布于 2024-04-26 17:25:07

您需要传递具有相同值的cookie和头:

import requests
f = open('C:\\Users\\myname\\Desktop\\image.jpg', 'rb')
urls='http://localhost:8000/upper'
cookies = {'csrftoken': 'token'}
headers = {'X-CSRF-TOKEN': 'token'}
r=requests.post(urls, files={'uploads':f}, cookies=cookies, headers=headers)
print(r.status_code)

代币的值不重要,你可以取任何文字,只要它们是一样的。在

相关问题 更多 >