firstof – Django 模板标签
Django 模板是使用 Django 模板语言标记的文本文档或Python字符串。 Django 是一个强大的包含电池的框架,为在模板中呈现数据提供了便利。 Django 模板不仅允许将数据从视图传递到模板,而且还提供了一些有限的编程功能,例如变量、for 循环、注释、firstof 等。
本文围绕如何在模板中使用firstof 标签展开。 firstof tag 输出第一个不为“假”的参数变量(即存在、不为空、不是假布尔值且不是零数值)。如果所有传递的变量都是“假”,则不输出任何内容。
句法
{% firstof var1 var2 var3... %}
例子
{% firstof var1 var2 var3 %}
这相当于:
{% if var1 %}
{{ var1 }}
{% elif var2 %}
{{ var2 }}
{% elif var3 %}
{{ var3 }}
{% endif %}
如果所有传递的变量都是 False,也可以使用字面量字符串作为后备值:
{% firstof var1 var2 var3 "fallback value" %}
firstof – Django 模板标签说明
使用示例说明如何在 Django 模板中使用 firstof 标记。考虑一个名为 geeksforgeeks 的项目,它有一个名为 geeks 的应用程序。
Refer to the following articles to check how to create a project and an app in Django.
- How to Create a Basic Project using MVT in Django?
- How to Create an App in Django ?
现在创建一个视图,我们将通过它访问模板,
在 geeks/views.py 中,
Python3
# import Http Response from django
# import Http Response from django
from django.shortcuts import render
# create a function
def geeks_view(request):
# create a dictionary
context = {
"var1":None,
"var2":None,
"var3":"GeeksForGeeks"
}
# return response
return render(request, "geeks.html", context)
Python3
from django.urls import path
# importing views from views.py
from .views import geeks_view
urlpatterns = [
path('', geeks_view),
]
html
Variable displayed :
{% firstof var1 var2 var3 %}
创建一个 url 路径以映射到此视图。在 geeks/urls.py 中,
Python3
from django.urls import path
# importing views from views.py
from .views import geeks_view
urlpatterns = [
path('', geeks_view),
]
在 templates/geeks.html 中创建一个模板。
html
Variable displayed :
{% firstof var1 var2 var3 %}
让我们检查一下 geeks.html 中的第三个变量是否显示了数据
高级用法
此标签自动转义变量值。您可以使用以下方法禁用自动转义:
{% autoescape off %}
{% firstof var1 var2 var3 "fallback value" %}
{% endautoescape %}
或者,如果只需要转义一些变量,您可以使用:
{% firstof var1 var2|safe var3 "fallback value"|safe %}
您可以使用语法 {% firstof var1 var2 var3 as value %} 将输出存储在变量中。