Django实战之用户认证(初始配置)


Posted in Python onJuly 16, 2018

前两篇讲述了Django的理论,从这篇开始,我们真正进入Django实战部分,今天先从用户认证开始。

当大家平时打开一个网站时,第一步一般做什么?我猜大部分是先登录吧,所以我们就从用户认证开始。

打开用户认证

Django本身已经提供了用户认证模块,所以我们要做的事很简单,就是在它的基础上添加一些定制化的东西。默认情况下,Django的用户认证模块是打开的,可以通过以下步骤确认用户模块是否打开(在settings.py文件里):

1、确保 MIDDLEWARE_CLASSES 中包含 'django.contrib.sessions.middleware.SessionMiddleware'。

2、确认 INSTALLED_APPS 中有 'django.contrib.sessions'

3、将 'django.contrib.auth' 放在你的 INSTALLED_APPS 设置中,然后运行 manage.py syncdb以创建对应的数据库表。

4、确认 SessionMiddleware 后面的 MIDDLEWARE_CLASSES 设置中包含 'django.contrib.auth.middleware.AuthenticationMiddleware'。

数据库配置

用户认证系统必然离不开数据库,因为用户信息需要保存在数据库里,Django自带的用户认证系统也不例外。在使用它之前,必须配置数据库,Django支持大部分的主流数据库,这里我采用的是Oracle数据库,首先需要安装cx_Oracle模块,Django必须通过它才能访问Oracle数据库。至于如何安装cx_Oracle模块,这里就不讲了,具体查看官方文档。

接着在Oracle中创建一个用户,我们Django项目创建的所有表都建在该用户下,因此需要相应的权限:

SQL> create user dbrelease identified by *** default tablespace dbrelease;
 
SQL> grant resource,create session,unlimited tablespace to dbrelease;

然后在settings.py中的Databases属性里设置django连接oracle:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.oracle', 
    'NAME': 'lxdbtest',           
    'USER': 'dbrelease',
    'PASSWORD': '***',
    'HOST': '192.168.1.16',           
    'PORT': '1521',           
  }
}

注意:上面的NAME是指Oracle的instance_name

好了,下面验证是否可以成功连接Oracle:

进入Django项目的主目录,运行python manage.py shell进入交互命令行,然后输入:

>>> from django.db import connection
>>> cursor = connection.cursor()

如果没有报错,说明已经配置成功。

最后执行syncdb语句,从以下输出中我们可以发现,用户认证系统默认在数据库里创建了以下表:

# python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
举例简单讲解Python中的数据存储模块shelve的用法
Mar 03 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
python矩阵转换为一维数组的实例
Jun 05 Python
对python函数签名的方法详解
Jan 22 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
May 15 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python 如何测试文件是否存在
Jul 31 Python
如何使用Pytorch搭建模型
Oct 26 Python
Python sklearn分类决策树方法详解
Sep 23 Python
python format 格式化输出方法
Jul 16 #Python
Python合并多个Excel数据的方法
Jul 16 #Python
详解django.contirb.auth-认证
Jul 16 #Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 #Python
django认证系统实现自定义权限管理的方法
Jul 16 #Python
Sanic框架路由用法实例分析
Jul 16 #Python
Sanic框架安装与简单入门示例
Jul 16 #Python
You might like
php生成随机密码的几种方法
2011/01/17 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
用js重建星际争霸
2006/12/22 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
原生JS实现图片轮播效果
2016/12/26 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
Angular.js前台传list数组由后台spring MVC接收数组示例代码
2017/07/31 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
python非递归全排列实现方法
2017/04/10 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python用Try语句捕获异常的实例方法
2019/06/26 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
西式婚礼主持词
2014/03/13 职场文书
食品安全承诺书范文
2014/08/29 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS