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中操作字符串之replace()方法的使用
May 19 Python
详解Python中的相对导入和绝对导入
Jan 06 Python
浅谈Python 的枚举 Enum
Jun 12 Python
Python列表推导式与生成器表达式用法示例
Feb 08 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
详解python中的index函数用法
Aug 06 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
如何用python开发Zeroc Ice应用
Jan 29 Python
python压包的概念及实例详解
Feb 17 Python
python推导式的使用方法实例
Feb 28 Python
python 字典和列表嵌套用法详解
Jun 29 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/08/24 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
php中函数前加&符号的作用分解
2014/07/08 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
nodeJS代码实现计算交社保是否合适
2015/03/09 NodeJs
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
浅谈vue获得后台数据无法显示到table上面的坑
2020/08/13 Javascript
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
大学生社会实践自我鉴定
2014/03/24 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
女方离婚起诉书
2015/05/18 职场文书
业务员管理制度范本
2015/08/06 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
Python Django项目和应用的创建详解
2021/11/27 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript