用户的注册与登陆是一个网站应该具有的基本功能。网上很多Django关于实现用户注册与登录的教程都是用Django 1.X写的,比较老了,所以小编我觉得有必要亲自动手用Django 2.0重写用户注册与登陆教程。另外网上很多教程忽略了Django Auth模块自带的User模型而重新建立了自己用户的模型,小编我一看到这种教程就会投去一脸鄙视的目光。一个网站会什么要有两个User模型? Why? Why? 本文会教你在不自建User模型的情况下实现用户的注册与登陆。另外,我们会对Django Auth自带的User模型进行扩展,允许用户添加更多的个人信息。由于全文非常的长,我们会分3部分推送,欢迎订阅我的微信公众号【Python与Django大咖之路】获取最新文章。
总体开发思路
我们要利用Django 2.0开发一个叫users的app,来实现以下6项功能。我们一共将分3篇文章来介绍。本文只介绍用户的注册和登录部分。
-
用户注册: 注册完成后转到登录页面
-
用户登录: 登录完成后转到用户资料页面
-
用户资料页面: 查看用户注册信息,并提供编辑资料按钮
-
用户资料编辑:编辑完成后转到用户资料查看页面
-
用户密码重置
-
用户退出登陆
由于Django Auth自带的User模型字段有限,我们还需要自定义模型UserProfile对其扩展。
Django Auth模块自带User模型所包含字段
|
自定义的UserProfile模型
|
第一步: 创建名叫users的app并修改设置setting.py
我们假设你已经利用Django创建了一个叫mysite的项目,你可以在终端cmd窗口cd进入这个目录,并输入以下命令创建一个叫users的app。
python manage.py startapp users
然后找到mysite/settings.py里将'users' 加到INSTALLED_APPS里,如下图所示。
INSTALLED_APPS = [
'reg.apps.RegConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users',
]
第二步: 建立名叫UserP