Django 是一个流行的 Web 应用程序框架,采用了 MTV(Model-Template-View)架构模式。MTV 与 MVC(Model-View-Controller)类似,但有一些区别。下面我将详细解释 Django MTV 框架的基本特点,并结合示例代码进行说明:
在 Django 中,模型是通过 Python 类来定义的。我们可以使用 Django 的 ORM(Object-Relational Mapping)来与数据库交互。
# blog/models.py
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
模板使用 HTML 和 Django 的模板语言来渲染数据。在这个例子中,我们将使用模板来展示博客列表。
<!-- blog/templates/blog_list.html -->
<!DOCTYPE html>
<html>
<head>
<title>Blog List</title>
</head>
<body>
<h1>Blog List</h1>
<ul>
{% for post in blog_posts %}
<li>
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<p>Created at: {{ post.created_at }}</p>
</li>
{% endfor %}
</ul>
</body>
</html>
视图函数接收请求并返回响应。在这个例子中,我们将从数据库中获取所有博客数据,并将其传递给模板进行渲染。
# blog/views.py
from django.shortcuts import render
from .models import BlogPost
def blog_list(request):
# 获取所有博客数据
blog_posts = BlogPost.objects.all()
# 将数据传递给模板进行渲染
return render(request, 'blog_list.html', {'blog_posts': blog_posts})
blog_list
。blog_list.html
进行渲染。总结:Django 的 MTV 架构模式使代码结构清晰,并允许开发者将应用程序逻辑与 UI 分开。模型处理数据,模板处理 UI,视图协调模型和模板之间的数据流动。这种结构使开发更加高效和维护更加简单。