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中使用Boolean操作符做真值测试实例
Jan 30 Python
python学习教程之使用py2exe打包
Sep 24 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
Python 判断 有向图 是否有环的实例讲解
Feb 01 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python函数与方法的区别总结
Jun 23 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
Django中使用Celery的方法步骤
Dec 07 Python
深度学习小工程练习之垃圾分类详解
Apr 14 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 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 adodb分页实现代码
2009/03/19 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
javascript Excel操作知识点
2009/04/24 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
javascript 利用arguments实现可变长参数
2016/11/21 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
Python实现全局变量的两个解决方法
2014/07/03 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Django多数据库的实现过程详解
2019/08/01 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
财务人员求职自荐书范文
2014/02/10 职场文书
给学校的建议书
2014/03/12 职场文书
女生节标语
2014/06/26 职场文书
拖欠货款起诉状
2015/05/20 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
使用 JavaScript 制作页面效果
2021/04/21 Javascript
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python