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爬取读者并制作成PDF
Mar 10 Python
基于Python Shell获取hostname和fqdn释疑
Jan 25 Python
python 默认参数问题的陷阱
Feb 29 Python
使用简单工厂模式来进行Python的设计模式编程
Mar 01 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
Python Grid使用和布局详解
Jun 30 Python
python实现键盘控制鼠标移动
Nov 27 Python
Django web框架使用url path name详解
Apr 29 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
使用Pyhton 分析酒店针孔摄像头
Mar 04 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
PHP之变量、常量学习笔记
2008/03/27 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
JavaScript中getUTCMinutes()方法的使用详解
2015/06/10 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
CKeditor4 字体颜色功能配置方法教程
2019/06/26 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
Python如何获取系统iops示例代码
2016/09/06 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
Python初学者常见错误详解
2019/07/02 Python
PowerBI和Python关于数据分析的对比
2019/07/11 Python
django 取消csrf限制的实例
2020/03/13 Python
Python 实现简单的客户端认证
2020/07/29 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
团队拓展活动总结
2014/08/27 职场文书
母亲节寄语大全
2015/02/27 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书