Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-禁止(CSRF令牌丢失或不正确。)_Python_Django - Fatal编程技术网

Python Django-禁止(CSRF令牌丢失或不正确。)

Python Django-禁止(CSRF令牌丢失或不正确。),python,django,Python,Django,我在创建使用{%csrf_token%}的简单表单时遇到问题 带表单的模板: <form action="{% url 'library:my_view' %}" method="post"> {% csrf_token %} <input type="submit" value="Submit"> </form> views.py def my_view(request): used_method = str(request.m

我在创建使用{%csrf_token%}的简单表单时遇到问题

带表单的模板:

<form action="{% url 'library:my_view' %}" method="post">
   {% csrf_token %}
   <input type="submit" value="Submit">
</form>
views.py

def my_view(request):
        used_method = str(request.method)
        return render(request, 'library/some_template.html', {'test': used_method})
带结果的模板(some_Template.html):

{{test}

服务器向我发送消息:

禁止(CSRF令牌丢失或不正确)::/Library/some\u页面
“POST/library/some_page HTTP/1.1”403 2513

或者(当我使用其他浏览器时):

禁止(未设置CSRF cookie)::/library/some_page
“发布 /图书馆/部分图书馆网页HTTP/1.1“403 2868

当我通过
@csrf\u emption
decorator禁用保护时,表单正常工作。哪里有问题


我将非常感谢您的帮助。

您正在创建一个空表单。您在表单内部呈现什么?您是否创建了forms.py文件

<form action="{% url 'library:my_view' %}" method="post">
   {% csrf_token %}
   <input type="submit" value="Submit">
</form>

{%csrf_令牌%}

您的设置中间件列表中是否有“django.middleware.csrf.CsrfViewMiddleware”?是的,我有。这是默认设置。我没有更改。您的
设置中是否有
CSRF\u COOKIE\u SECURE=True
。py
并通过http而不是https访问您的开发服务器?不知道,您的代码还可以,可能是一些设置、缓存、,或者类似的CSRF\u COOKIE\u SECURE=True/False-无差异会话\u COOKIE\u SECURE=True/False-无差异安全\u SSL\u REDIRECT=False-无差异,True-访问HTTPS,我根本无法连接本地主机。我没有创建任何表单。py文件。我正在使用Django 2.2教程,这个文件还没有介绍。我使用了一个空表单,因为我想用最简单的例子来解释我的问题。这有关系吗?当我添加有作用的输入时,问题看起来是一样的。如果我使用@csrf_-emption,并且不使用已启用的令牌,则该表单可以工作。
<form action="{% url 'library:my_view' %}" method="post">
   {% csrf_token %}
   <input type="submit" value="Submit">
</form>