📜  变量 – Django 模板(1)

📅  最后修改于: 2023-12-03 15:07:26.017000             🧑  作者: Mango

变量 - Django 模板

在 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 页面。

在模板中使用 for 循环

你可以在 Django 模板中使用 for 循环遍历列表、元组或字典等结构类型。

下面的示例演示了如何使用 for 循环遍历列表:

{% for item in my_list %}
    <li>{{ item }}</li>
{% endfor %}

在上面的示例中,my_list 是所需列表,for 循环将遍历 my_list 中的每个项,并将当前项存储在 item 变量中。循环内的 {{ item }} 将为每个项生成字符串。注意,循环必须以 {% endfor %} 结束。

在模板中使用 if 语句

Django 模板还提供了 if 语句,你可以在其中使用条件运算符。以下示例基于 user 变量中的用户类型,演示了如何使用 if 语句:

{% if user.is_authenticated %}
    <p>Welcome back, {{ user.username }}!</p>
{% else %}
    <p>Please log in.</p>
{% endif %}

在上面的示例中,if 语句检查用户是否已经通过身份验证。如果 user.is_authenticatedTrue,则打印欢迎信息,否则提示用户登录。

总结

变量是为了在 Django 模板中插入动态数据而引入的。在模板中,使用双花括号包裹变量。通过在视图中,将变量和模板传递给 render() 函数,将变量渲染到模板中。模板还提供了 forif 语句,让模板更加灵活和可定制。