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

前两篇讲述了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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Django自定义用户认证示例详解

    前言 Django附带的认证对于大多数常见情况来说已经足够了,但是如何在 Django 中使用自定义的数据表进行用户认证,有一种较为笨蛋的办法就是自定义好数据表后,使用OnetoOne来跟 Django 的表进行关联,类似于这样: from django.contrib.auth.models import User class UserProfile(models.Model): """ 用户账号表 """ user = models.OneT

  • 基于Django用户认证系统详解

    一. 认证系统概要 create_user 创建用户 authenticate 验证登录 login 记住用户的登录状态 logout 退出登录 is_authenticated 判断用户是否登录 login_required 判断用户是否登录的装饰器 二. 创建用户和验证登录 当用户注册的时候用create_user(username,password,email)默认情况下is_active=True,is_staff=False,is_superuser=False. 底层将passwor

  • 深入理解Django中内置的用户认证

    前言 本文主要给大家介绍了关于Django中内置用户认证的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 认证登陆 在进行用户登陆验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中: 如果用户存在于数据库中,然后再验证用户输入的密码,这样一来就要自己编写大量的代码. 事实上,Django已经提供了内置的用户认证功能. 在使用"python manage.py makemigrationss"和"python m

  • 详解Django之auth模块(用户认证)

    auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的登录信息是否存在于数据库中. 除此之外,auth还对session做了一些封装,方便我们校验用户是否已登录 auth里的方法 如果想使用auth模块的方法,必须要先导入auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法

  • Django实战之用户认证(用户登录与注销)

    上一篇中,我们已经打开了Django自带的用户认证模块,并配置了数据库连接,创建了相应的表,本篇我们将在Django自带的用户认证的基础上,实现自己个性化的用户登录和注销模块. 首先,我们自己定义一个用户登录表单(forms.py): from django import forms from django.contrib.auth.models import User from bootstrap_toolkit.widgets import BootstrapDateInput, Boots

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

    前两篇讲述了Django的理论,从这篇开始,我们真正进入Django实战部分,今天先从用户认证开始. 当大家平时打开一个网站时,第一步一般做什么?我猜大部分是先登录吧,所以我们就从用户认证开始. 打开用户认证 Django本身已经提供了用户认证模块,所以我们要做的事很简单,就是在它的基础上添加一些定制化的东西.默认情况下,Django的用户认证模块是打开的,可以通过以下步骤确认用户模块是否打开(在settings.py文件里): 1.确保 MIDDLEWARE_CLASSES 中包含 'djan

  • Django自带用户认证系统使用方法解析

    Django自带用户认证系统,这个系统支持访问控制.注册用户.关联创建者和内容等:在开发用户认证功能时的时候,可以使用django中的django.contrib.auth 中封裝了注册.认证,登录登出方法,可以直接使用: 相关表 在使用"python manage.py makemigrationss"和"python manage.py migrate"迁移完成数据库之后 根据配置文件settings.py中的数据库段生成的数据表中已经包含了6张进行认证的数据表

  • 配置Linux使用LDAP用户认证的方法

    我这里使用的是CentOS完成的LDAP用户管理,可能与网上的大部分教程不同,不过写出来了,那么是肯定能用的了,不过会有部分文件,忘指教. 这里使用的 OPENLdap 配合 CentOS7 完成的用户管理,需要配置 nssswitch .pam 和 sssd 3个服务,需要先有一定的了解才能完成本文的配置. 基础配置# 1.完成yum源的配置 mkdir /root/back tar -Jcvf /root/back/yum.repos.d-`date '+(%Y.%m.%d_%H:%M:%S

  • 利用Django内置的认证视图实现用户密码重置功能详解

    前言 密码重置功能相信对大家来说都不陌生,本文主要给大家介绍了关于使用Django内置的认证视图实现简单的通过邮箱重置密码的功能,分享出来供大家参考学习,下面话不多说了,来一起来看看详细的介绍吧. 版本: django 1.11 实现方法 在django.contrib.auth.views中提供了四个类视图用于密码重置 class PasswordResetView URL name: password_reset  #要保持相同 通过给邮箱发送重置密码的链接进行密码重置.注意如果邮箱不存在,

  • Django 用户认证组件使用详解

    一.auth模块 # 创建超级用户 python manage.py createsuperuser from django.contrib import auth django.contrib.auth中提供了许多方法: authenticate() 提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username .password两个关键字参数. 如果认证成功(用户名和密码正确有效),便会返回一个 User 对象. authenticate()会在该 User 对象上设置一个属性

  • Django用户认证系统如何实现自定义

    自定义用户认证系统 Django 自带的用户认证系统已经可以满足大部分的情况,但是有时候我们需要某些特定的需求.Django 支持使用其他认证系统.也可以扩展Django的User模块,完全自定义新的认证模块. 参考:https://docs.djangoproject.com/en/2.0/topics/auth/customizing/ a.拷贝以下代码到model文件中: from django.db import models from django.contrib.auth.model

  • django 认证类配置实现

    目录 一.配置认证类 1.认证全局配置文件 2.局部使用 3.匿名用户配置: 二.内置认证类 1.BaseAuthentication 2.其他认证类 三.总结 1.自定义认证类: 2.认证配置: 3.源码流程: 一.配置认证类 1.认证全局配置文件 经过认证的源码流程剖析,DRF的认证全局配置在api_setting中,以下是api_setings部分源码: api_settings = APISettings(None, DEFAULTS, IMPORT_STRINGS) def reloa

随机推荐