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使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
python中的代码编码格式转换问题
Jun 10 Python
PyQt实现界面翻转切换效果
Apr 20 Python
详解重置Django migration的常见方式
Feb 15 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
基于python的Paxos算法实现
Jul 03 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
最小二乘法及其python实现详解
Feb 24 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 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
50个PHP程序性能优化的方法
2014/06/02 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP时间处理类操作示例
2018/09/05 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
用javascript获取地址栏参数
2006/12/22 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
Javascript缓存API
2016/06/14 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
jQuery 筛选器简单操作示例
2019/10/02 jQuery
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
顶岗实习接收函
2014/01/09 职场文书
大学生村官承诺书
2014/03/28 职场文书
爱耳日宣传活动总结
2014/07/05 职场文书
2015年学校图书室工作总结
2015/05/19 职场文书
追悼会家属答谢词
2015/09/29 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
Python+Tkinter打造签名设计工具
2022/04/01 Python
Python字符串格式化方式
2022/04/07 Python