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 相关文章推荐
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 Python
Python的dict字典结构操作方法学习笔记
May 07 Python
利用python发送和接收邮件
Sep 27 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
Python闭包思想与用法浅析
Dec 27 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
Python随机数函数代码实例解析
Feb 09 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
python super()函数的基本使用
Sep 10 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
Oct 15 Python
virtualenv隔离Python环境的问题解析
Jun 21 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
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
Js+XML 操作
2006/09/20 Javascript
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
Js sort排序使用方法
2011/10/17 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
js基本算法:冒泡排序,二分查找的简单实例
2016/10/08 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
python中as用法实例分析
2015/04/30 Python
Python连接phoenix的方法示例
2017/09/29 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
python openpyxl使用方法详解
2019/07/18 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
一些Solaris面试题
2013/03/22 面试题
车辆安全检查制度
2014/01/12 职场文书
医学类个人求职信范文
2014/02/05 职场文书
2014年高考决心书
2014/03/11 职场文书
精神文明单位申报材料
2014/05/02 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2015年征兵工作总结
2015/07/23 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL