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 中的 else详解
Apr 23 Python
Python简单删除列表中相同元素的方法示例
Jun 12 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
Python中new方法的详解
Jan 15 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
Python内存管理实例分析
Jul 10 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
keras.layer.input()用法说明
Jun 16 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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加MYSQL服务器
2006/10/09 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
PHP中SESSION过期设置
2021/03/09 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
javascript 数组学习资料收集
2010/04/11 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
jquery实现的让超出显示范围外的导航自动固定屏幕最顶上
2011/09/22 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
js中日期的加减法
2015/05/06 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
全球虚拟主机商:HostGator
2017/02/06 全球购物
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
C#面试问题
2016/07/29 面试题
服装厂厂长职责
2013/12/16 职场文书
实习心得体会
2014/01/02 职场文书
代理班主任的自我评价
2014/02/04 职场文书
幼儿园秋游感想
2014/03/12 职场文书
机电一体化专业求职信
2014/07/22 职场文书
2015党建工作简报
2015/07/21 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
Python利用capstone实现反汇编
2022/04/06 Python