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脚本将文字转换为图片的实例分享
Aug 29 Python
python增加矩阵维度的实例讲解
Apr 04 Python
浅谈python3.6的tkinter运行问题
Feb 22 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
python修改文件内容的3种方法详解
Nov 15 Python
Python实现将蓝底照片转化为白底照片功能完整实例
Dec 13 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
python字符串下标与切片及使用方法
Feb 13 Python
小 200 行 Python 代码制作一个换脸程序
May 12 Python
python 实现两个npy档案合并
Jul 01 Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
十天学会php(2)
2006/10/09 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
Python随机生成彩票号码的方法
2015/03/05 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
工作岗位职责范本
2015/02/15 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL