Django csrf_token问题解决方案

两种解决方法

一:CSRF验证设置
前端:
html文件需要加上 {% csrf_token %}

<form action="." method="POST">
    {% csrf_token %}
    <input type="text" name="test" value="{{test}}"/>
    <input type="submit" value="提交" />
</form>

Django后台---2种解决方法:
1:继承TemplateView

from django.views.generic import TemplateView

class TestView(TemplateView):

    template_name = "test.html"

    def get(self, request):
        return self.render_to_response(locals())

    def post(self, request):
        test = request.POST.get("test", "").strip()
        return self.render_to_response(locals())

2: 加上RequestContext

from django.views.generic import View
from django.shortcuts import RequestContext

class TestView(View):

    template_name = "test.html"

    def get(self, request):
        # return render(request, self.template_name )    #这行代码作用和下面一行一样
        return render_to_response(self.template_name, context_instance=RequestContext(request))

    def post(self, request):
        test = request.POST.get("test", "").strip()
        # return render(request, self.template_name, locals())  #这行代码作用和下面一行一样
        return render_to_response(self.template_name, locals(), context_instance=RequestContext(request))

二:不使用CSRF验证
1:html文件中form表单中移除 {%csrf_token%}

2: settings.py文件中不使用csrf中间件

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    #'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.middleware.locale.LocaleMiddleware',
)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Web框架之Django: (1)简介: Django是一个由Python写成开源的重量级Web应用框架,采用MT...
    老肖阅读 3,079评论 0 18
  • 此段内容简要来自自强学堂的教程详情请查询自强学堂 一、 后台的运作流程 接收request请求 处理数据 获取请求...
    coder_ben阅读 5,259评论 6 56
  • 经过对django的初步学习,我们已经对后台的基本流程以及django的运作有了一定的了解,但是这还不足够,dja...
    coder_ben阅读 3,858评论 8 34
  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,580评论 9 165
  • 模板标签除了几个常用的,还真心没有仔细了解一下,看到2.0发布后,翻译学习一下。 本文尽量忠实原著,毕竟大神的东西...
    海明_fd17阅读 2,046评论 0 5