Django 中的 % % 和
Posted
技术标签:
【中文标题】Django 中的 % % 和【英文标题】:% % and in DjangoDjango 中的 % % 和 【发布时间】:2016-04-10 02:25:41 【问题描述】:我正在学习 Django,遇到了 2 组我以前从未见过的特殊字符。我可以猜到它们在示例中的用途,但不了解它们的范围。
他们是:
% if registered %
user_form.as_p
我在上下文中添加了if registered
和user_form.as_p
。我只关心其中的% %
和
部分。
【问题讨论】:
【参考方案1】:这些是出现在 django 模板中的特殊标记。您可以在文档中的django template language reference 处阅读有关语法的更多信息。
foo
- 这是模板中的占位符,用于从视图传递给模板的变量 foo。
% %
- 当文本被这些分隔符包围时,表示有一些特殊的功能或代码在运行,其结果将放在这里。当内部的文本不是从视图传递给模板,而是模板语言本身正在执行的函数或特性(如 for 循环或 if 条件)时,使用它。您可以创建自己的模板语言扩展,称为模板标签。
foo|something
- 这是您可能会遇到的另一种语法。 |something
是一个模板过滤器。它通常用于转换|
符号左侧项目的结果。例如 foo|title
。
您可以阅读更多关于标签和过滤器的信息,在文档中称为template builtins。
这种语法并不是 django 独有的——Python 中的许多其他模板语言(以及 Python 之外的一些)都采用了类似的语法。
Python 语言没有相同的语法,但它确实有string templates 的概念,这是模板引擎的一个非常简化的版本。
【讨论】:
模板内建链接的 URL 已过时,并且随着新版本 django 文档的发布将继续过时。截至 2022 年 1 月 10 日,链接为 docs.djangoproject.com/en/4.0/ref/templates/builtins 但如果这仍然不起作用,请将 4.0 替换为最新记录的 django 版本。【参考方案2】:它们用于.html
文件,也就是模板。 它们不是 python,它们是 Django's template engine 的一部分。
您使用% %
表示句子,例如:if
和for
,或调用标签例如:load
、static
等。
您使用
在模板中呈现变量。
【讨论】:
【参考方案3】:% % 和 是 Django 模板语言的一部分。它们用于将变量从视图传递到模板。 % % 基本上用于当您有表达式并称为标签时,而 用于简单地访问变量。
更多信息,我建议看看:
https://docs.djangoproject.com/en/1.9/ref/templates/language/#variables
【讨论】:
以上是关于Django 中的 % % 和的主要内容,如果未能解决你的问题,请参考以下文章
如何避免 Django Forms 和 Django Rest Framework Serializers 中的代码重复?