django错误 - Reason given for failure: CSRF cookie not set.

练习Django表单提交时遇到如下问题:

在网上各种查找,终于找到了解决方法。

1.在from 表单中添加 {% csrf_token %}

2.在视图中添加 from django.template import RequestContext 导入项,并且在return 返回中添加context_instance=RequestContext(request)

<form  role="form" method="post" action="login">
        {% csrf_token %}
        <input name="userName" type="text" class="text" placeholder="账号"  required="" >
        <input name="password" type="password" placeholder="密码" required >
        <div class="submit"><input type="submit"  value="登录"></div>
</form>
from django.template import  RequestContext

def index(request):
    return render_to_response("login.html",context_instance=RequestContext(request))

def login(request):
    return render_to_response("index.html")

再测试就OK了。

django之所以引进CSRF是为了避免Cross Site Request Forgeries攻击

时间: 2024-11-08 23:08:16

django错误 - Reason given for failure: CSRF cookie not set.的相关文章

(转载)django 访问url报错Forbidden (CSRF cookie not set.): xxx 问

原地址:http://www.cnblogs.com/meitian/p/7016336.html 问题:页面访问时报错 Forbidden (CSRF cookie not set.): xxx 解决方法: 修改settings.py文件,注释掉 django.middleware.csrf.CsrfViewMiddleware',

django中给ajax提交加上csrf

在html中的script标签下插入下面代码 在html文档加载时候运行下面代码,并且使用$.ajaxSetup设置ajax每次调用时候传入的数据,$.ajaxSetup进行默认的设置,只需要设置一次,每次ajax调用都会使用. 注意,以下代码使用了jquery,jquery.cookies.js 库.在head部分引用这些库,才能使得正常运行.另外需注意在某些特别情况下django并没有将csrftoken设置到cookie里面.那么这代码就失去了作用. $(document).ready(

django 快速实现完整登录系统(cookie)

经过前面几节的练习,我们已经熟悉了django 的套路,这里来实现一个比较完整的登陆系统,其中包括注册.登陆.以及cookie的使用. 本操作的环境: =================== deepin linux 2013(基于ubuntu) python 2.7 Django 1.6.2 =================== 创建项目与应用                                                                          

django错误-NoReverseMatch at /admin/

错误提示: NoReverseMatch at /admin/ Reverse for 'logout' with arguments '()' and keyword arguments '{}' not found. 解决方式: 将urls.py中 (r'^admin/$', include(admin.site.urls)), 改成 (r'^admin/', include(admin.site.urls)), django错误-NoReverseMatch at /admin/

django错误笔记(xadmin)——AttributeError: &#39;Settings&#39; object has no attribute &#39;TEMPLATE_CONTEXT_PROCESSORS&#39;

使用Xadmin,执行makemigrations和migrate时运行报错提示: AttributeError: 'Settings' object has no attribute 'TEMPLATE_CONTEXT_PROCESSORS' 方法一: setting.py文件添加以下信息: TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_pr

Django笔记-登陆、注册(利用cookie实现)

1.项目结构: 2.关键代码: settings.py INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog', ) MIDDLEWARE_CLASSES = ( 'django.

django错误参考

1. admin中文显示: ----------------------------------------------------------------------------------------------经确认是新版本的django包版本中只有zh_Hans目录,没有zh_CN,把zh_Hans目录复制一个zh_CN就Ok了一楼评论的方法也不错,在settings里面直接改成zh-Hans,这样就不用升级完Django,还去改目录了.-------------------------

django种表单post出现CSRF verification failed( CSRF验证失败 ) 的两种解决方案

现象 表单界面如下: 在点击提交之后,出现如下错误页面: HTML的代码如下: contact_form.html <!DOCTYPE HTML PUBLIC > <html> <head> <title>Contact us</title> </head> <body> <h1>Contact us</h1> {% if errors %} <ul> {% for error in e

ajax向Django前后端提交请求和CSRF跨站请求伪造

1.ajax登录示例 urls.py from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login_ajax/$', views.login_ajax, name='login_ajax'), url(r'^index/$', views.index, n