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学习笔记之常用函数及说明
May 23 Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
Python requests库用法实例详解
Aug 14 Python
使用Scrapy爬取动态数据
Oct 21 Python
Python实现多进程的四种方式
Feb 22 Python
python里 super类的工作原理详解
Jun 19 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
Python列表list常用内建函数实例小结
Oct 22 Python
Django实现前台上传并显示图片功能
May 29 Python
python开发前景如何
Jun 11 Python
Python批量将csv文件转化成xml文件的实例
May 10 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
Django REST framwork的权限验证实例
2020/04/02 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
python代码如何注释
2020/06/01 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
Python监听剪切板实现方法代码实例
2020/11/11 Python
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
个人能力自我鉴赏
2014/01/25 职场文书
研究生毕业鉴定
2014/01/29 职场文书
关于安全演讲稿
2014/05/09 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
个人主要事迹材料
2014/08/26 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
公司保洁员管理制度
2015/08/04 职场文书
MySQL中连接查询和子查询的问题
2021/09/04 MySQL