gpt4 book ai didi

django - 如何使用 urllib 发布到 Django 1.2 表单?

转载 作者:行者123 更新时间:2023-12-04 16:41:31 25 4
gpt4 key购买 nike

出发this其他 SO 问题,我尝试使用 urlencode 和 urlopen 将数据发布到表单。但是,当我使用 Django 1.2 时,它给了我一个 CSRF 验证失败的错误。有解决方法吗?

谢谢。

最佳答案

向其他表单提交数据与您的案例之间的区别在于您必须首先获取 CSRF token 。这可以通过首先在页面上执行 GET 请求然后解析 csrfmiddlewaretoken 来完成。使用合适的解析器。

还要记住,您需要安装一个 cookie jar 才能使其工作。

例如:

#!/usr/bin/python
import urllib, urllib2, cookielib
from BeautifulSoup import BeautifulSoup

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)

url = urllib2.urlopen('http://localhost:8000/accounts/login/')
html = url.read()

doc = BeautifulSoup(html)
csrf_input = doc.find(attrs = dict(name = 'csrfmiddlewaretoken'))
csrf_token = csrf_input['value']

params = urllib.urlencode(dict(username = 'foo', password='top_secret',
csrfmiddlewaretoken = csrf_token))
url = urllib2.urlopen('http://localhost:8000/accounts/login/', params)
print url.read()

关于django - 如何使用 urllib 发布到 Django 1.2 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3623925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com