博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django的用户认证管理,如何使用session(1)
阅读量:6988 次
发布时间:2019-06-27

本文共 2061 字,大约阅读时间需要 6 分钟。

这几天打算做一个用户注册登陆验证,由于我没有使用django自身的数据库和model,这里也不想用它的user认证,因为只有天知道会不会有天老大说,我们不要用django了,给我移植一下吧。但是在这个架构上写东西,很多东西还是被它的安全机制所限制。

打算用session存储user信息,用django的认证,就需要在数据库里“manage.py syncdb”一下生成很多auth相关的表,而且生成的user的password还是明码,这个对于安全机制没什么要求的人来说,这么多表和严格认证都是累赘。我为了使用本地file存储session,在settings.py里加上了:

SESSION_ENGINE = 'django.contrib.sessions.backends.file'SESSION_FILE_PATH = "D:/learn/Monitor/static/data"

但是,在view里我用request.session获取到的session竟然是[], 无论我是否修改了session值,到新页面仍然是[]; 而且HttpResponse和HttpResponseRedirect也不再听话,所有的设想都破灭了,甚至莫名的弹出了这样一个错误框:

无头绪,但是任务还是要完成,改用django的用户认证得了,于是回来把admin相关的url.py,settings.py中的配置都修改回来:

url.py:

# Uncomment the next two lines to enable the admin:from django.contrib import adminadmin.autodiscover() url(r'^admin/', include(admin.site.urls)),

settings.py:

MIDDLEWARE_CLASSES = (    'django.middleware.common.CommonMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'djangomako.middleware.MakoMiddleware',    # Uncomment the next line for simple clickjacking protection:    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',)INSTALLED_APPS = (    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.sites',    'django.contrib.messages',    'django.contrib.staticfiles',    # Uncomment the next line to enable the admin:    'django.contrib.admin',    # Uncomment the next line to enable admin documentation:    'django.contrib.admindocs',。。。。。

然后“manage.py syncdb”生成了auth相关的表,并同时创建superuser:“ user:admin,password:admin”;

最后打开“127.0.0.1:8000/admin”; 弹出了登陆框,输入用户名和密码,确认输入正确啊!!!可是仍然不让我进去!!!

实在是晕了。。。。整了一上午,突然想起来我让session存在本地文件导致session访问不到,这个auth认证本来默认存在数据库的,而默认被我修改到file读取,而file完全读不到,即使输入了正确的用户名和密码,仍然就被无情的抛弃掉了,当然进不到用户登录成功的管理界面!原来是这个道理,于是: 我赶紧把

settings.py 里的

SESSION_ENGINE = 'django.contrib.sessions.backends.file'SESSION_FILE_PATH = "D:/learn/Monitor/static/data"

删除掉,再试,总算是进去了,╮(╯▽╰)╭

转载地址:http://ezwvl.baihongyu.com/

你可能感兴趣的文章
【Visual C++】游戏开发笔记之十 基础动画显示(三) 透明动画的实现
查看>>
今目标反思
查看>>
SQL Server 备份的 8 种方法。
查看>>
SQL Server 从数据库快照还原数据库
查看>>
$(document).keydown
查看>>
对Java、C#转学swift的提醒:学习swift首先要突破心理障碍。
查看>>
面向对象 2017-4-15
查看>>
java项目导出war包
查看>>
算法第三章实践报告
查看>>
linux应用之Mongodb的安装及配置(centos)
查看>>
Python 面向对象 --- eval 函数
查看>>
PHP的错误和异常处理
查看>>
z-index兼容问题:关于ie6/7下的z-index
查看>>
腾讯2014年实习生招聘笔试面试经历
查看>>
不浮躁,获取充实感
查看>>
Pyqt 国际化多语言支持
查看>>
大多数女生为什么不适合当程序员?
查看>>
SID1190471 / 烦人的幻灯片 暴力出奇迹 !!!!!!!!!!!!!!!!!!...
查看>>
高速排序 与 随机高速排序 算法分析
查看>>
使用MyEclipse 2014构建Maven项目的两种方法
查看>>