• django用户认证系统——基本设置1


     

    网站提供登录、注册等用户认证功能是一个常见的需求。因此,Django 提供了一套功能完整的、灵活的、易于拓展的用户认证系统:django.contrib.auth。在本教程中,我将向你展示 auth 模块的基本用法,例如如何提供用户注册、登录、修改密码、找回密码等功能;如何拓展 auth 内置的 User 模型;如何自定义用户验证后台,以支持用户使用诸如邮箱手机号等用户名登录(默认只支持使用用户名登录)等等。

    开启一个新的 Django 工程

    推荐新建一个 Django 工程来作为演示或者作为练习,以免把已有的项目搞乱了。本教程的演示项目基于最新版 Django 1.11.1 和 Python 3.5,不过对于其它的 Django 和 Python 同样适用。首先在 Python 环境下安装 Django(推荐使用虚拟环境,如何使用虚拟环境可以参考 搭建 Django 开发环境。接下来使用 Django 提供的命令建立一个新的工程,我把它命名为 django_auth_example。

    $ django-admin startproject django_auth_example
    

    工程建好了,目录结构如下:

    django_auth_example/
        manage.py
        django_auth_example/
            __init__.py
            settings.py
            urls.py
            wsgi.py
    

    必要的配置

    Django 在新建工程时已经为使用用户认证系统做好了全部必要的配置。不过有可能你并非使用 django-admin 命令新建的工程,或者你使用的是一个正在开发中的项目,因此最好再检查一下 settings.py 文件中是否已经做好了全部必要配置。

    首先检查一下必要的应用是否已经在 INSTALLED_APPS 配置里列出:

    django_auth_example/settings.py
    
    INSTALLED_APPS = [
        # 其它应用列表...
        'django.contrib.auth',
        'django.contrib.contenttypes',
    ]
    

    为了使用用户认证系统,必须安装以下两个应用:

    • django.contrib.auth
    • django.contrib.contenttypes

    django.contrib.contenttypes 是 auth 模块的用户权限处理部分依赖的应用。

    其次需要在中间件 MIDDLEWARE 配置里列出以下两个中间件:

    • SessionMiddleware 用户处理用户会话。
    • AuthenticationMiddleware 绑定一个 User 对象到请求中(具体将在后面介绍)。

    即像下面这样的配置:

    django_auth_example/settings.py
    
    MIDDLEWARE = [
        # 其它中间列表...
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
    ]
    

    如果以上配置没问题的话就可以正常地使用用户认证系统了。

    新建一个应用

    即便是目前只使用 Django 用户认证系统的默认特性,推荐的做法也是新建一个应用,用于存放和用户功能相关的代码,为将来可能的功能拓展做准备。因此让我们来新建一个应用,我习惯上把应用命名为 users。

    $ python manage.py startapp users
    

    新建的应用一定要记得在 settings.py 里注册,否则 Django 无法得知你新建了应用。

    django_auth_example/settings.py
    
    INSTALLED_APPS = [
        # 其它应用列表...
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'users', # 注册新建的应用 users
    ]
    

    OK,项目的基本准备工作到这里就结束了,接下来让我们开始使用 Django 用户系统为我们提供的功能吧!

  • 相关阅读:
    剑指 Offer 25. 合并两个排序的链表
    剑指 Offer 26. 树的子结构
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 29. 顺时针打印矩阵
    剑指 Offer 30. 包含min函数的栈
    剑指 Offer 22. 链表中倒数第k个节点
    选轻量应用服务器还是云服务器ECS?一图彻底搞懂
    征文投稿丨使用云服务器ECS快速搭建halo博客
    运营给产品送的情人节礼物是?
    阿里云张献涛:自主最强DPU神龙的秘诀
  • 原文地址:https://www.cnblogs.com/AmilyWilly/p/8469845.html
Copyright © 2020-2023  润新知