Django 用户资料 - 学习使用 Django 编写代码
你好,程序员们,
本文讲解如何在管理模块之外编写一个可供已验证用户使用的Django 用户配置文件。本文内容或许能帮助初学者学习 Django 的新知识,并编写一个具有商业价值的真实项目。
对于新手来说,Django是最受欢迎的基于 Python 的 Web 框架,最初发布于 2003 年,目前是 Web 开发中的参考框架。
“内置电池”概念和专家提供的内置安全模式使得Django软件被 Disqus 和 Instagram 等科技巨头所采用。
- 👉 Django 用户配置文件- 现场演示
- 👉 Django 用户配置文件- 源代码
- 👉 Django Bootstrap 5 - 原始启动器(免费)
✅ Django 简介
Django是一个遵循 MVT(模型视图模板)架构模式的开源框架。该框架注重快速开发和代码复用性,并遵循经验丰富的开发人员提供的安全最佳实践。选择 Django 的理由如下:
完整、成熟的框架- Django 提供的“Batteries Included”理念帮助开发人员更快地实现常用功能,例如身份验证、简洁的数据库访问、REST 服务等等。一旦开发人员掌握了该框架,他们就可以轻松地编写代码,从简单的单页网站到电商平台。
安全- 由经验丰富的开源爱好者编写的版本,Django 通过提供经过设计和测试的模块和层来保护部署在互联网上的网站和项目,帮助开发人员避免许多常见的安全错误。
功能多样- Django 可用于构建从简单网站到博客平台、API、微服务乃至高流量电商平台的开发。许多像 Instagram 和 Disqus 这样的大公司都选择 Django 作为其核心后端技术。
要了解有关 Django 的更多信息,请随时访问:
- Django-官方网站
- Django Web 框架- 服务器端编程
✅ 入门代码库
用户配置文件功能是在一个简单的开源项目之上提供的,并增强了一些基本功能,如身份验证、良好的设计以及用于 Docker 和 Gunicorn/Nginx 堆栈的部署脚本。
模块化结构使用“应用程序”来实现项目功能:
- 核心应用程序处理配置并提供静态资产
- 身份验证管理登录和注册操作以允许用户入职
- 应用程序是一个简单的模块,为经过身份验证的用户提供私人页面
- 客户是处理个人资料编辑功能的新模块
引导流程
- Django bootstrapper
manage.py
使用core/settings.py
作为主配置文件 core/settings.py
.env
从文件加载应用程序魔法- 重定向访客用户至登录页面
- 为经过身份验证的用户解锁应用模块提供的页面
- 用户可以更新他们的个人资料并更改姓名、姓氏、生日和地址。
源代码
要实现此功能,我们需要使用 Django 核心提供的工具编写一些简单的代码。首先,添加一个新的“应用程序”来分离新的逻辑,并保留现有代码的模块化设计。要生成应用程序框架,我们将调用startapp命令:
$ python manage.py startapp customers
应用程序生成后,下一步是添加一个保存新字段的新表:User, Birthday, Zip, City, Address, ZIP code
这是表的定义 - 定义于customers/models.py
class Profile(models.Model):
# Managed fields
user = models.OneToOneField(User, related_name="profile", on_delete=models.CASCADE)
avatar = models.ImageField(upload_to="customers/profiles/avatars/", null=True, blank=True)
birthday = models.DateField(null=True, blank=True)
gender = models.PositiveSmallIntegerField(choices=GENDER_CHOICES, null=True, blank=True)
phone = models.CharField(max_length=32, null=True, blank=True)
address = models.CharField(max_length=255, null=True, blank=True)
number = models.CharField(max_length=32, null=True, blank=True)
city = models.CharField(max_length=50, null=True, blank=True)
zip = models.CharField(max_length=30, null=True, blank=True)
为了有效地使用该表,我们需要执行新的迁移并将生成的 SQL 应用到数据库。关联的表单将收集信息并使用POST请求提交用户提供的信息。
$ # Generate SQL for the new table
$ python manage.py makemigrations
$ # Apply changes on database
$ python manage.py migrate
提供此流程的相关文件如下:
- Profile 模型定义在
customers/models.py
- Profile 表单定义在
customers/forms.py
- 剖面视图模板定义在
customers/views.py
视图(又称控制器)根据请求的类型进行不同的处理:GET请求将从数据库中提取信息并填充表单。如果请求类型为POST,则验证用户提供的信息并将其保存到数据库中以供后续使用。
好奇的人们可以按照README文件中提供的构建说明来编译和使用代码,该文件与 Github 公共存储库中的源代码一起保存。
感谢阅读!如需更多资源,请访问:
- 👉 更多Django 仪表板- 精选索引
- 👉 Django App Generator - 第二代应用程序构建器