Django4全栈进阶之路13 template模板

发布时间 2023-04-23 22:37:25作者: 城南城南

在 Django 4 中,模板是用于生成 HTML 响应的文件。模板将动态数据和静态 HTML 组合在一起,以便最终呈现给用户的页面。

Django 4 中的模板使用 Django 模板语言(Django Template Language,简称 DT)编写。DT 与 HTML 类似,但包含一些特殊的标记和语法,用于动态地生成 HTML 内容。

以下是一个简单的 Django 4 模板示例:template文件夹下新建“myapp”文件夹,并新建html文件user_list.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User List</title>
</head>
<body>
<h1>{{ title }}</h1>
{% if users %}
<ul>
{% for user in users %}
<li><a href="{{ user.username }}">{{ user.username }}-{{ user.email }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No user yet.</p>
{% endif %}
</body>
</html>

在这个例子中,我们定义了一个 HTML 页面,并使用 DT 标记添加动态数据。{{ title }} 是一个 DT 变量,它将在呈现页面时被替换为相应的值。{% if %}{% for %} 是 DT 控制结构,用于根据条件或迭代列表的值动态生成内容。

在 Django 4 中,模板可以通过多种方式使用。通常,模板与视图函数配对使用,以便将动态数据传递到模板中。以下是一个使用视图函数和模板的示例:

from django.contrib.auth.models import User
from django.shortcuts import render

def user_list(request):
users = User.objects.all()
context = {'title': 'user list', 'users': users}
return render(request, 'myapp/user_list.html', context)

在这个例子中,我们定义了一个名为 article_list 的视图函数,并从数据库中获取文章列表。我们还定义了一个包含标题和文章列表的字典 context,并将其传递给 render 函数。render 函数将使用 myapp/article_list.html 模板来生成响应,并将 context 中的数据传递给模板。

需要注意的是,在 Django 4 中,模板文件通常存储在应用程序的 templates 文件夹中。默认情况下,Django 将在每个应用程序的 templates 文件夹中查找模板文件。

from django.urls import path

from . import views

urlpatterns = [
    path('user_list/', views.user_list, name='user_list'),
    # ... 其他 URL 模式 ...
]