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切换hosts文件代码示例
Dec 31 Python
python os用法总结
Jun 08 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
python 魔法函数实例及解析
Sep 25 Python
python实现猜数字游戏
Mar 25 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
python中线程和进程有何区别
Jun 17 Python
python3.8动态人脸识别的实现示例
Sep 21 Python
python安装mysql的依赖包mysql-python操作
Jan 01 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 ignore_user_abort与register_shutdown_function 使用方法
2009/06/14 PHP
php UTF-8、Unicode和BOM问题
2010/05/18 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
JavaScript实现横版菜单栏
2020/03/17 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python 性能提升的几种方法
2016/07/15 Python
Python3中详解fabfile的编写
2018/06/24 Python
基于logstash实现日志文件同步elasticsearch
2020/08/06 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
早餐连锁店计划书
2014/01/08 职场文书
文明礼仪事迹材料
2014/01/09 职场文书
申报材料格式
2014/12/30 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
运动会通讯稿50字
2015/07/20 职场文书
2016年五一促销广告语
2016/01/28 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Win11 BitLocker 驱动器加密
2022/04/19 数码科技