Django报错 Forbidden (CSRF token missing or incorrect.): 解决方法

方法一:自定义一个中间件

from django.utils.deprecation import MiddlewareMixin
from django.middleware.csrf import get_token


class CsrfTokenMiddleware(MiddlewareMixin):
    def process_request(self, request):
        get_token(request)
在配置文件settings.py 的中间件添加一行代码
'utils.csrfTokenMiddleware.CsrfTokenMiddleware'

方法二:在html文件下form表单中添加{% csrf_token %}

<div class="container">
    <div class="row">
        <h2 class="text-center">注册</h2>
        <div class="col-md-8 col-md-offset-2">
            <form action="" method="post">
                 {% csrf_token %}
                <p>username:<input type="text" class="form-control" name="username"></p>
{#                <p>username:<input type="text" class="form-control" name="username"></p>#}
                <p>password:<input type="password" class="form-control" name="password"></p>
                <input type="submit" class="btn btn-danger">
            </form>

        </div>
    </div>
</div>

方法三:在view中使用method_decorator装饰器

from django.utils.decorators import method_decorator
from django.views.decorators.csrf import ensure_csrf_cookie


class RegistView(View):
  @method_decorator(ensure_csrf_cookie)
  def get(self, request)
      pass
  def post(self, request)
      pass

 

原文地址:https://www.cnblogs.com/2722127842qq-123/p/14040690.html