📅  最后修改于: 2023-12-03 15:07:26.017000             🧑  作者: Mango
在 Django 中,变量是指被包含在双花括号 {{
和 }}
中的文本块。它们用于在模板中插入动态内容。变量可以是字符串、数字、列表或字典等数据类型。
在模板中使用变量需要使用 {{
和 }}
将变量包围起来,如以下示例:
<h1>Welcome, {{ user.username }}!</h1>
<p>Your email address is {{ user.email }}.</p>
在上面的示例中,{{ user.username }}
和 {{ user.email }}
是通过模板上下文传递的 user
变量的属性。模板上下文是在渲染模板时由视图传递给模板的变量集合。
在视图中,有多种方法向模板传递变量,最常用的方法是使用 render()
函数:
from django.shortcuts import render
def my_view(request):
# 定义需要传递给模板的变量
context = {'username': 'John Doe', 'age': 35}
# 将变量渲染到模板中
return render(request, 'myapp/index.html', context)
在上面的示例中,context
变量包含需要传递给模板的变量。render()
函数使用传递给它的变量和模板,生成并返回渲染后的 HTML 页面。
你可以在 Django 模板中使用 for
循环遍历列表、元组或字典等结构类型。
下面的示例演示了如何使用 for
循环遍历列表:
{% for item in my_list %}
<li>{{ item }}</li>
{% endfor %}
在上面的示例中,my_list
是所需列表,for
循环将遍历 my_list
中的每个项,并将当前项存储在 item
变量中。循环内的 {{ item }}
将为每个项生成字符串。注意,循环必须以 {% endfor %}
结束。
Django 模板还提供了 if
语句,你可以在其中使用条件运算符。以下示例基于 user
变量中的用户类型,演示了如何使用 if 语句:
{% if user.is_authenticated %}
<p>Welcome back, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}
在上面的示例中,if
语句检查用户是否已经通过身份验证。如果 user.is_authenticated
为 True
,则打印欢迎信息,否则提示用户登录。
变量是为了在 Django 模板中插入动态数据而引入的。在模板中,使用双花括号包裹变量。通过在视图中,将变量和模板传递给 render()
函数,将变量渲染到模板中。模板还提供了 for
和 if
语句,让模板更加灵活和可定制。