【发布时间】:2015-02-18 18:58:02
【问题描述】:
我在 Firefox 中使用 REST Easy 向 Django 中的简单表单发出 POST 请求,但它给了我一个 403 错误“2295 CSRF 令牌丢失或不正确”。
这是我的views.py(因为我在代理后面使用网络):
from django.shortcuts import render
import urllib2
def home(request):
if request.method == 'POST':
post = request.POST
if 'passkey' in post:
if post['passkey'] == '123':
proxy = urllib2.ProxyHandler({'http': 'http://070.13095070:pujakumari123@10.1.1.19:80'})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
urllib2.install_opener(opener)
j = urllib2.urlopen(post['url'])
j_obj = json.load(j)
return HttpResponse(j_obj)
else:
return render(request, 'packyourbag/home_page.html')
还有我的模板文件:
<html>
<body>
<form id="form" method="post">
{% csrf_token %}
url:<input type="text" name="url"/>
Pass Key:<input type="text" name="passkey"/>
<button type="submit" name="url_post">
Post
</button>
</form>
</body>
</html>
我正在传递一个 URL 和密码,但我不知道如何传递一个 CSRF 令牌(我什至不知道我是否必须传递这个)。
【问题讨论】:
-
plz 还告诉我要在我的代码中进行哪些更改......当我只是写@csrf_excempt 时,它给出了错误 - 'name 'csrf_excempt' is not defined'..再次帮助我请..:)
标签: python django django-csrf