Django 2.0 项目实战: 扩展Django自带User模型,实现用户注册与登录

本文介绍了如何在Django 2.0中不自建User模型,而是扩展内置模型实现用户注册与登录功能。通过创建名为users的app,建立UserProfile模型,配置URL,编写视图和HTML模板,详细展示了实现过程。
摘要由CSDN通过智能技术生成

用户的注册与登陆是一个网站应该具有的基本功能。网上很多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模型所包含字段

  • username:用户名

  • email: 电子邮件

  • password:密码

  • first_name:名

  • last_name:姓

  • is_active: 是否为活跃用户。默认是True

  • is_staff: 是否为员工。默认是False

  • is_superuser: 是否为管理员。默认是False

  • date_joined: 加入日期。系统自动生成。

自定义的UserProfile模型

  • user: 与User是1对1关系

  • org:用户名

  • telephone: 电话

  • mod_date: 最后修改日期。系统自动生成

 

第一步: 创建名叫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

  • 17
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值