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 相关文章推荐
Python实现二分查找算法实例
May 26 Python
Python读取一个目录下所有目录和文件的方法
Jul 15 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
Pycharm学习教程(2) 代码风格
May 02 Python
Python内置函数delattr的具体用法
Nov 23 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
Python模块、包(Package)概念与用法分析
May 31 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
使用pandas读取文件的实现
Jul 31 Python
python3 map函数和filter函数详解
Aug 26 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 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
DC动漫人物排行
2020/03/03 欧美动漫
删除无限级目录与文件代码共享
2006/07/12 PHP
php adodb连接不同数据库
2009/03/19 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
php中的ini配置原理详解
2014/10/14 PHP
php socket通信简单实现
2016/11/18 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
2016/12/12 Javascript
canvas时钟效果
2017/02/16 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
在Django的上下文中设置变量的方法
2015/07/20 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python 显示数组全部元素的方法
2018/04/19 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
销售业务员岗位职责
2015/02/13 职场文书
庆七一晚会主持词
2015/06/30 职场文书
清明扫墓感想
2015/08/11 职场文书
诚信教育主题班会
2015/08/13 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
详解MySQL中的pid与socket
2021/06/15 MySQL
MySQL分库分表详情
2021/09/25 MySQL