Django教程 - MVT架构,自定义命令
各位程序员朋友们,大家好!
本篇Django 教程介绍了一些实用主题,可以帮助初学者在Django中编写出比简单的“Hello World”程序更复杂的代码。对于新手来说,Django是最流行的基于 Python 的 Web 框架,最初发布于 2003 年,目前拥有超过 2000 名开源爱好者组成的庞大社区。“开箱即用”的设计理念和专家提供的内置安全模式,使Django成为 Web 开发领域的标杆框架。为了使本文更有价值,感兴趣的读者可以使用开源示例来实践这些概念。感谢阅读!
感谢阅读! - 内容由App Generator提供。
- ✨ Django 架构 - MVT 模式
- ✨ 自定义命令 - 如何扩展默认的 Django CLI
- ✨免费示例 - Django Soft 设计系统

✨ Django 软件架构
本节解释了 Django MVT 架构以及它与长期存在的 MVC 架构有何不同。
介绍
Django 是一个基于 Python 的免费开源 Web 框架,遵循 MVT(模型-视图-模板)架构模式。该框架强调组件的可重用性和“可插拔性”,代码量少、耦合度低、开发速度快,并遵循“不要重复自己”的原则。Django 通篇使用 Python,甚至包括设置、文件和数据模型。此外,Django 还提供了一个可选的管理界面,用于创建、读取、更新和删除 (CRUD) 操作,该界面通过自省动态生成,并通过管理模型进行配置。
✨ MVT架构——这种模式包含以下三个部分:
-
模型:它将
Model作为您的数据接口。它负责维护数据。它是整个应用程序背后的逻辑数据结构,并由数据库(通常是关系型数据库,例如 MySQL、PostgreSQL)表示。 -
视图:指
View您在浏览器中渲染网站时看到的用户界面。它由 HTML/CSS/Javascript 和 Jinja 文件构成。 -
模板:A
Template由所需的 HTML 输出的静态部分以及描述如何插入动态内容的一些特殊语法组成。
下面给出MVT动作流程的简化图:
在此过程中,用户向 Django 请求资源。Django 作为控制器,检查 URL 中是否存在可用资源。如果 URL 匹配,则调用一个视图,该视图与模型和模板交互并渲染模板。Django 将响应模板发送给用户。
知名的 GeeksforGeeks 平台提供了一篇关于 MVT 和 MVC 模式的精彩对比文章 - 点击此处查看全文。
图片来源- GeeksforGeeks
✨ 自定义命令
Django 提供了一系列命令行实用程序,可以通过命令行django-admin.py或便捷的manage.py脚本调用。它的优点之一是,你还可以添加自定义命令。
简介- 在正式开始之前,我们先花点时间熟悉一下 Django 的命令行界面。您可能已经熟悉诸如 `add` startproject、runserver`add` 或 `add` 之类的命令collectstatic。要查看完整的命令列表,您可以运行以下命令:
$ python manage.py help
优势——自定义命令的主要优势在于所有 Django 组件都已加载完毕,随时可用。这意味着您可以导入模型、使用 Django 的 ORM 执行数据库查询,并与项目的所有资源进行交互。
结构- 我们可以为自己的应用程序创建自定义命令,并通过在应用程序目录中创建 management/commands 目录,将它们添加到列表中,如下所示:
< PROJECT ROOT > <-- project directory
|-- poll/ <-- app directory
| |-- management/
| | +-- __init__.py
| | +-- commands/
| | +-- __init__.py
| | +-- my_custom_command.py <-- module where command is going to live
| |-- migrations/
| | +-- __init__.py
| |-- __init__.py
| |-- admin.py
| |-- apps.py
| |-- models.py
| |-- tests.py
| +-- views.py
|-- core/
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
+-- manage.py
命令文件名将用于通过命令行工具调用该命令。例如,如果我们的命令名为 my_custom_command.py,那么我们可以通过以下方式执行它:
$ python manage.py my_custom_command
让我们编写一个可运行的示例代码——自定义命令应该如下所示:
management/commands/my_custom_command.py
from django.core.management.base import BaseCommand
from django.utils import timezone
class Command(BaseCommand):
help = 'Displays current time'
def handle(self, *args, **kwargs):
time = timezone.now().strftime('%X')
self.stdout.write("It's %s" % time)
Django 管理命令由一个名为 `Management` 的类组成,Command该类继承自 `Management` BaseCommand。命令代码应在 `Management` 方法中定义handle()。
该命令可按如下方式执行:
$ python manage.py my_custom_command
输出:
It's 10:30:00
✨ Django Soft 设计系统
这个开源入门项目可以用来应用上述所有概念,源代码可以直接从 GitHub 下载——无需注册即可获取和使用代码。Django 代码库结构简洁直观,包含身份验证和部署脚本,所有这些都基于现代化的 Bootstrap 5 设计——Soft UI 设计系统。
- Django 软 UI 设计系统- 产品页面
- Soft UI 设计系统 Django 演示- 在线部署
感谢阅读!更多资源请访问:
- Django - 官方网站和文档
- Django 速查表- 为懒惰开发者提供的 Django 快速入门指南
- 更多Django Starter 项目- 由 AppSeed 提供


