玩蛇网提供最新Python编程技术信息以及Python资源下载!

django正确使用csrf求高手指点

每次要做csrf保护总是会出现如下的问题,然后弄半天又自己好了

但是弄完之后还是一团米糊,下次又不知道怎么弄了

1 settings.py中在middleware中要有'django.middleware.csrf.CsrfViewMiddleware'这个中间件加上了

2 然后在html的表单中也加了{% csrf_token %}

3 然后在视图函数中也加入了装饰器@csrf_protect

4 在跳转模版的时候也加上了context_instance=RequestContext(request) 可是依然会出现上图中的错误

真心希望大神指点一下 上面那些东西哪些是必须的 哪些是不需要的

我看django中auth模块的源码中基本每个视图函数前都加了@csrf_protect这个装饰器,然后我在表单中一开始加了{% csrf_token %} 一开始会出现上图的错误,后来什么也没改又可以post提交了,望大大们指点

django建议使用django.middleware.csrf.CsrfViewMiddleware进行全局控制,不提倡使用@csrf_protect进行单view控制,因为这样可能会有遗漏。如果不想进行csrf保护的view可以加上@csrf_exempt。 官方文档有三个步骤,楼主应该是第三步没弄对:把django.core.context_processors.csrf加到配置文件的 TEMPLATE_CONTEXT_PROCESSORS,或者手动生成csrftoken并加到template context。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd20090.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月19日 - 17时47分03秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules