Django 是一个流行的 Python Web 框架,它提供了多种方式来渲染 HTML 页面。以下是所有渲染方式的简要描述和示例代码:
Django 模板语言是 Django 自带的模板引擎,它允许你在 HTML 文件中插入动态数据。模板语言使用 {{ 变量 }}
和 {% 标签 %}
这样的特殊标记来区分动态内容和控制结构。
示例代码:
<!-- 在模板中定义变量并渲染 -->
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>Hello, {{ username }}!</h1>
</body>
</html>
在 Django 视图函数中,你可以使用 render
函数来将数据传递给模板并进行渲染:
from django.shortcuts import render
def my_view(request):
data = {
'title': 'My Page',
'username': 'John',
}
return render(request, 'my_template.html', data)
Django 提供了多个内置标签,用于在模板中进行循环、条件判断和其他逻辑操作。这些标签使用 {% 标签 %}
的形式。
示例代码:
<!-- 使用 for 循环标签 -->
{% for item in items %}* {{ item }}
<!-- 使用 if 条件判断标签 -->
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}
Django 模板过滤器允许你在模板中对变量进行处理,如格式化日期、转换大小写等。过滤器使用管道符 |
连接到变量后面。
示例代码:
<!-- 使用模板过滤器 -->
<p>Uppercase: {{ text|upper }}</p>
<p>First 5 characters: {{ text|slice:":5" }}</p>
<p>Formatted date: {{ date|date:"F d, Y" }}</p>
Django 允许你创建嵌套模板,即在一个模板中包含另一个模板。这样可以更好地组织你的代码并提高重用性。
示例代码:
<!-- base.html -->
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
<!-- my_template.html -->
{% extends "base.html" %}
{% block title %}
My Page
{% endblock %}
{% block content %}
<h1>Hello, {{ username }}!</h1>
{% endblock %}
在这个示例中,my_template.html
继承自 base.html
,并使用 block
标签来覆盖和填充相应的内容。
这些是 Django 渲染 HTML 页面的主要方式。根据你的需求和项目要求,你可以选择最适合你的方式来渲染页面。