Django实战之用户认证(初始配置)

yipeiwu_com5年前Python基础

前两篇讲述了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计算阶乘和的方法(1!+2!+3!+...+n!)

方法一:使用while循环来计算 n = int(input()) jie = 1 sum = 0 i = 1 while n >= i: jie = jie * i...

给大家整理了19个pythonic的编程习惯(小结)

Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。 要写出 Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写的代码,github...

python中hasattr()、getattr()、setattr()函数的使用

python中hasattr()、getattr()、setattr()函数的使用

 引言:   在阅读源码时,有很多简写的形式,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr()、getattr()、setat...

浅谈Python中的作用域规则和闭包

在对Python中的闭包进行简单分析之前,我们先了解一下Python中的作用域规则。关于Python中作用域的详细知识,有很多的博文都进行了介绍。这里我们先从一个简单的例子入手。 Pyt...

python实现二维数组的对角线遍历

python实现二维数组的对角线遍历

本文实例为大家分享了python实现二维数组的对角线遍历,供大家参考,具体内容如下 第一种情况:从左上角出发,右下角结束 要完成的事情,就像下图: 话不多说,直接上Python实现代码...