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 相关文章推荐
pygame学习笔记(6):完成一个简单的游戏
Apr 15 Python
使用Python编写爬虫的基本模块及框架使用指南
Jan 20 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python:socket传输大文件示例
Jan 18 Python
Python列表推导式与生成器用法分析
Aug 02 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
对python多线程与global变量详解
Nov 09 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
python异步存储数据详解
Mar 19 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
python区块及区块链的开发详解
Jul 03 Python
python开发飞机大战游戏
Jul 15 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
PHP ajax 异步执行不等待执行结果的处理方法
2015/05/27 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
javascript一点特殊用法
2008/05/28 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
推荐一款jQuery插件模板
2015/01/09 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
ionic3 懒加载
2017/08/16 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
python中altair可视化库实例用法
2021/01/26 Python
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
小学校园活动策划
2014/01/30 职场文书
保险公司晨会主持词
2014/03/22 职场文书
网络技术专业求职信
2014/05/02 职场文书
银行金融服务方案
2014/06/11 职场文书
毕业论文致谢部分怎么写
2015/05/14 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
php将xml转化对象的实例详解
2021/11/17 PHP