Django提交POST表单报”CSRF verification failed.”

环境

  • python 3.6
  • Django 2.0
  • PyCharm 2017.2

问题

当提交POST表单时,出现以下报错:
CSRF verification failed. Request aborted.

解决方法

  • 查看setting.py,是否有'django.middleware.csrf.CsrfViewMiddleware':
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
  • 在表单处理函数文件头导入csrf_protect:

from django.views.decorators.csrf import csrf_protect

  • 在表单处理函数前加@csrf_protect:
@csrf_protect
def login(request):

    if request.method=='GET':
        return render(request,"login.html")
    else:
        print(request.GET)
        print(request.POST)

        user=request.POST.get("user")
        pwd=request.POST.get("pwd")

        if user == 'shunzi' and pwd == '123456':
            return HttpResponse('登录成功')
        else:
            return HttpResponse('username or password is error!')

再次执行,运行正常

继续阅读
shunzi
  • 本文由 发表于 2018-07-0411:48:16
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Pandas问题锦集 BLOG

Pandas问题锦集

使用pandas处理数据时,遇到的问题汇总,持续更新 Pandas在read_csv中发现好些数据都用科学计数法显示 解决办法如下: pd.set_option('display.float_form...
Oracle中文转换成拼音首字母 BLOG

Oracle中文转换成拼音首字母

姓名转换成拼音首字母 今天使用帆软BI系统同步用户,遇到一个巨麻烦的问题,前期系统方法权限,用同步用户的方式,不能编辑用户信息,手动添加用户吧,又会把同步功能去掉了,这俩只能二选一! 最后没事想从数据...
deepin linux 15.11系统安装 BLOG

deepin linux 15.11系统安装

Deepin 15.11系统安装 window系统实在是太难用了,用了那么多linux系统,发现deepin系统真的是太好用了!特别推荐一下!!! 首先下载deepin系统ISO镜像,https://...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: