19 Django模板渲染数据教程

19 Django模板渲染数据教程

在本节中,我们将学习如何在Django中使用模板渲染数据。模板是Django中的一个关键组成部分,通过它可以将动态数据展示给用户。

模板基础

在Django中,模板文件通常位于templates目录下。我们使用HTML文件作为模板,并结合Django templating language(Django模板语言)来渲染数据。

创建一个模板

首先,我们需要创建一个模板文件。假设我们创建一个名为index.html的模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>欢迎来到我的网站</title>
</head>
<body>
<h1>欢迎, {{ user.username }}!</h1>
<p>这是您的个人资料:</p>
<ul>
<li>邮箱: {{ user.email }}</li>
<li>注册日期: {{ user.date_joined }}</li>
</ul>
</body>
</html>

在这个模板中,我们使用了 {{ }} 语法来插入动态数据。

连接视图与模板

接下来,我们需要定义一个视图,该视图将渲染这个模板。让我们在views.py中添加一个视图函数:

1
2
3
4
5
6
7
from django.shortcuts import render
from django.contrib.auth.models import User

def user_profile(request):
# 假设我们从数据库获取了一个用户对象
user = User.objects.get(pk=request.user.id)
return render(request, 'index.html', {'user': user})

在这个视图中,我们使用了render函数来渲染模板。第二个参数是一个字典,包含我们想要传递给模板的数据。在这里,我们将user对象传递给模板。

设置路由

现在,我们需要将这个视图与一个URL关联。我们可以在urls.py中进行设置:

1
2
3
4
5
6
from django.urls import path
from .views import user_profile

urlpatterns = [
path('profile/', user_profile, name='user_profile'),
]

这样,当用户访问/profile/时,将触发user_profile视图,从而渲染index.html模板。

运行服务器

确保你的Django服务器正在运行,可以通过以下命令启动:

1
python manage.py runserver

然后访问http://127.0.0.1:8000/profile/,你将看到你的模板渲染的数据。

常用模板标签

在Django模板中,除了使用{{ }}插入数据外,我们还可以使用标签来增强模板的功能。例如,{% if %}{% for %} 是非常常用的标签。

示例:使用for循环

假设我们要显示多个用户的个人信息,我们可以在视图中修改数据,示例代码如下:

1
2
3
def user_list(request):
users = User.objects.all()
return render(request, 'user_list.html', {'users': users})

然后在 user_list.html 模板中,我们可以使用 for 循环来遍历这些用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>用户列表</title>
</head>
<body>
<h1>用户列表</h1>
<ul>
{% for user in users %}
<li>{{ user.username }} - {{ user.email }}</li>
{% empty %}
<li>没有用户信息。</li>
{% endfor %}
</ul>
</body>
</html>

结尾

通过以上步骤,你已经学会了如何在Django中使用模板渲染数据。模板不仅可以显示数据,还可以通过标签和过滤器来处理数据,使得展示更加灵活和强大。接下来可以试着添加样式,或者更复杂的逻辑,以便深入理解Django模板的强大之处。

19 Django模板渲染数据教程

https://zglg.work/django/19/

作者

AI教程网

发布于

2024-08-08

更新于

2024-08-10

许可协议