我的代码很简单:
from django.http import HttpResponse text = """<form method="POST" action="/add/"> <input type="text" name="a" value="%d"> + <input type="text" name="b" value="%d"> <input type="submit" value="="> <input type="text" value="%d"> </form>""" def index(request): if request.POST.has_key('a'): a = int(request.POST['a']) b = int(request.POST['b']) else: a = 0 b = 0 return HttpResponse(text % (a, b, a + b))提交表格就返回403错误: CSRF verification failed. Request aborted.
网上传说的插入{% csrf_token %},在GET的时候就直接报错:
unsupported format character '}' (0x7d) at index 50
请问各位,我要怎么做?
暂时找到一种方法:
屏蔽跨站检测
https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/
看 Howtouseit
它上面的第一种方式我试过然后就向我描述的一样,第二种方法是使用模板,但是我用的不是模板要是我读得懂就好了。。。。。发现了 , {%csrf_token%} 在模板里才有作用。但是就像我这样直接写的代码呢?最后我还是想通了,用js好了
<!DOCTYPEhtml><html><body><inputtype="text"id="a"value="0">+<inputtype="text"id="b"value="0"><inputtype="button"onclick=result()value="="><inputtype="text"id="c"value="0"><scripttype="text/javascript">functionresult(){a=document.getElementById('a').value;a=parseFloat(a);b=document.getElementById('b').value;b=parseFloat(b);c=document.getElementById('c');c.value=(a+b)+"";}</script></body></html>个哈市打算打
阿斯达
D 算
要不你在模板里用{%csrf_token%},要不你用form造表单,手册上有版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。