django 解决CSRF verification failed. Request aborted

问题原因

一般而言,这可以发生时,有一个真正的跨站请求伪造,或当Django的CSRF的机制还没有正确使用。 对于POST表单,您需要确保:

*该视图功能使用模板RequestContext的。

*在模板中,有{%csrf_token%}(模板网址标记在每个邮局形式的内部目标。

*如果您不使用CsrfViewMiddleware,那么你必须在view中使用csrf_protect,

您看到此页面的帮助部分,因为你在settings中设置了 DEBUG = True。 改变这种状况为False,只有最初的错误信息会被显示。您可以使用CSRF_FAILURE_VIEW设置自定义此页面。
 

解决方法:

1,在html文件,form表单添加上{%csrf_token%}

    <form action="login" method="post">
      
      </br>
      </br>
      <h1>&emsp;&emsp;登录界面</h1>
      </br>
      
      <p class="p">&emsp;&emsp;账号:</p>
        &emsp;&emsp;&nbsp;
        <input class='input' type="text" name="user">
      
      <p class="p">&emsp;&emsp;密码:</p>
        &emsp;&emsp;&nbsp;
        <input class='input' type="text" name="pwd">

      </br></br>
        &emsp;&emsp;&emsp;&emsp;
        <button class="bt" type="submit">登录</button>
      
       

    </form> 

2,注释主项目的settings.py文件 代码段#

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',
]

'django.middleware.csrf.CsrfViewMiddleware',

猜你喜欢

转载自blog.csdn.net/qq_26086231/article/details/121056403