未加星标

Django 用户认证系统:基本设置

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

本教程为系列教程,为方便阅读,每篇教程开头列出全部教程的目录索引:

基本设置 拓展 User 模型 注册 登录 注销和页面跳转 修改密码 自定义认证后台(撰写中)

网站提供登录、注册等用户认证功能是一个常见的需求。因此,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 用户系统为我们提供的功能吧!

总结

本教程的示例项目代码位于 GitHub: Django Auth Example 。

如果遇到问题,请通过下面的方式寻求帮助。

在 Django 用户认证系统:基本设置 评论区留言。 在 Pythonzhcn 的 Django 版块 发布问题详细描述的帖子。

更多 Django 相关教程,请访问我的个人博客:追梦人物的博客。

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

主题: Django中间件GitGitHubPython博客需求
分页:12
转载请注明
本文标题:Django 用户认证系统:基本设置
本站链接:http://www.codesec.net/view/561307.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(46)