在当今的Web开发领域,Django 是一个流行的 Python Web 框架,它遵循 MVC(Model-View-Controller)架构模式。MVC 架构将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种架构模式使得代码组织更加清晰,易于维护和扩展。本文将深入探讨 Django MVC 框架,特别是如何使用模板引擎来轻松搭建网站页面。
模型(Model)
模型是 Django 应用程序的数据层,它负责处理数据库交互和业务逻辑。在 Django 中,模型通常是通过定义 Python 类来实现的,这些类继承自 django.db.models.Model。
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
在这个例子中,我们定义了一个 User 模型,它有三个字段:name、email 和 created_at。
视图(View)
视图负责处理用户的请求,并返回相应的响应。在 Django 中,视图通常是通过定义 Python 函数或类来实现的。
from django.shortcuts import render
from .models import User
def user_list(request):
users = User.objects.all()
return render(request, 'user_list.html', {'users': users})
在这个例子中,我们定义了一个 user_list 视图,它从数据库中检索所有用户,并将它们传递给模板。
模板引擎
Django 使用模板引擎来生成 HTML 页面。模板文件通常以 .html 扩展名保存,并使用 Django 模板语言(Django Template Language,DTL)编写。
<!DOCTYPE html>
<html>
<head>
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<ul>
{% for user in users %}
<li>{{ user.name }} - {{ user.email }}</li>
{% endfor %}
</ul>
</body>
</html>
在这个例子中,我们使用 DTL 循环遍历 users 变量,并输出每个用户的姓名和电子邮件地址。
控制器(Controller)
在 Django 中,控制器通常由视图实现。然而,如果你需要更复杂的逻辑,可以使用 Django 的类视图。
from django.views import View
from django.http import HttpResponse
from .models import User
class UserListView(View):
def get(self, request):
users = User.objects.all()
return render(request, 'user_list.html', {'users': users})
在这个例子中,我们定义了一个 UserListView 类视图,它实现了 get 方法来处理 GET 请求。
总结
通过使用 Django MVC 框架和模板引擎,你可以轻松地搭建网站页面。模型负责数据,视图负责处理请求并返回响应,而模板引擎负责生成 HTML 页面。这种架构模式使得代码组织更加清晰,易于维护和扩展。希望本文能帮助你更好地理解 Django MVC 框架和模板引擎。
