MVT (Model-View-Template) 架构
概述
Django 是一个基于 Python 的高级 Web 框架,它遵循 MVT(Model-View-Template)架构。MVT 是 Django 的核心设计模式,它将 Web 应用程序的开发分为三个主要部分:模型(Model)、视图(View)和模板(Template)。这种架构有助于开发者将业务逻辑、数据处理和用户界面分离,从而提高代码的可维护性和可扩展性。
1. Model(模型)
1.1 理论解释
模型是 Django 应用程序的核心,负责处理与数据库的交互。每个模型类对应数据库中的一张表,模型类的字段对应表中的列。Django 的 ORM(对象关系映射)系统允许开发者使用 Python 代码来操作数据库,而不需要编写 SQL 语句。
1.2 代码示例
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
published_date = models.DateField()
def __str__(self):
return self.title
1.3 实践练习
- 创建一个新的 Django 项目。
- 在项目中创建一个名为
books的应用。 - 在
books应用中定义一个Book模型,包含title、author和published_date字段。 - 运行
makemigrations和migrate命令来创建数据库表。
2. View(视图)
2.1 理论解释
视图是 Django 应用程序的控制器,负责处理用户的请求并返回响应。视图可以是一个函数(函数视图)或一个类(类视图)。视图通常会从模型中获取数据,并将数据传递给模板进行渲染。
2.2 代码示例
from django.shortcuts import render
from .models import Book
def book_list(request):
books = Book.objects.all()
return render(request, 'books/book_list.html', {'books': books})
2.3 实践练习
- 在
books应用中创建一个名为book_list的视图函数。 - 在视图中查询所有的书籍,并将结果传递给模板。
- 配置 URL 模式,使
/books/路径指向book_list视图。
3. Template(模板)
3.1 理论解释
模板是 Django 应用程序的用户界面部分,负责将数据呈现给用户。Django 的模板系统允许开发者使用 HTML 和 Django 模板语言(DTL)来构建动态网页。模板语言提供了丰富的标签和过滤器,用于控制数据的显示和格式化。
3.2 代码示例
<!-- books/templates/books/book_list.html -->
<!DOCTYPE html>
<html>
<head>
<title>Book List</title>
</head>
<body>
<h1>Book List</h1>
<ul>
{% for book in books %}
<li>{{ book.title }} by {{ book.author }}</li>
{% endfor %}
</ul>
</body>
</html>
3.3 实践练习
- 在
books应用的模板目录中创建一个名为book_list.html的模板文件。 - 在模板中使用 Django 模板语言循环遍历书籍列表,并显示每本书的标题和作者。
- 访问
/books/路径,查看书籍列表页面。
4. 总结
MVT 架构是 Django 的核心设计模式,它将 Web 应用程序的开发分为模型、视图和模板三个部分。模型负责数据处理,视图负责业务逻辑,模板负责用户界面。通过这种分离,Django 应用程序变得更加模块化和易于维护。
4.1 下一步
在掌握了 MVT 架构的基本概念后,你可以继续学习 Django 的其他高级功能,如表单处理、用户认证、缓存、RESTful API 开发等。这些功能将进一步增强你的 Django 开发能力。
4.2 参考资源
通过不断实践和学习,你将能够熟练掌握 Django 的 MVT 架构,并开发出功能强大的 Web 应用程序。