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实现生成简单的Makefile文件代码示例
Mar 10 Python
解析Python编程中的包结构
Oct 25 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python3实现抓取javascript动态生成的html网页功能示例
Aug 22 Python
python difflib模块示例讲解
Sep 13 Python
python指定写入文件时的编码格式方法
Jun 07 Python
pytorch使用Variable实现线性回归
May 21 Python
python实现批量视频分帧、保存视频帧
May 31 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
关于python中remove的一些坑小结
Jan 04 Python
Elasticsearch 数据类型及管理
Apr 19 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+Html+缓存
2006/12/20 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
mouse_on_title.js
2006/08/25 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
python常用函数详解
2016/09/13 Python
Python 处理数据的实例详解
2017/08/10 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python自定义线程池实现方法分析
2018/02/07 Python
Python理解递归的方法总结
2019/01/28 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
如何使用pycharm连接Databricks的步骤详解
2020/09/23 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
土木工程毕业生自荐信
2013/11/12 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
工作表现自我评价
2014/02/08 职场文书
师恩难忘教学反思
2014/04/27 职场文书
软件测试专业推荐信
2014/09/18 职场文书
离职告别感言
2015/08/04 职场文书
【2·13】一图读懂中国无线电发展
2022/02/18 无线电