Django 中的 % % 和

Posted

技术标签:

【中文标题】Django 中的 % % 和【英文标题】:% % and in DjangoDjango 中的 % % 和 【发布时间】:2016-04-10 02:25:41 【问题描述】:

我正在学习 Django,遇到了 2 组我以前从未见过的特殊字符。我可以猜到它们在示例中的用途,但不了解它们的范围。

他们是:

% if registered % user_form.as_p

我在上下文中添加了if registereduser_form.as_p。我只关心其中的% % 部分。

这些是仅在 Django 中使用还是在 Python 中也使用? 各代表什么意思? 还有其他类似的字符集吗?

【问题讨论】:

【参考方案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 的一部分。

您使用% % 表示句子,例如:iffor,或调用标签例如:loadstatic 等。

您使用 在模板中呈现变量。

【讨论】:

【参考方案3】:

% % 和 是 Django 模板语言的一部分。它们用于将变量从视图传递到模板。 % % 基本上用于当您有表达式并称为标签时,而 用于简单地访问变量。

更多信息,我建议看看:

https://docs.djangoproject.com/en/1.9/ref/templates/language/#variables

【讨论】:

以上是关于Django 中的 % % 和的主要内容,如果未能解决你的问题,请参考以下文章

python django应用中的model啥作用

如何避免 Django Forms 和 Django Rest Framework Serializers 中的代码重复?

自动发现项目中的URL,django1版本和django2版本

Django 框架篇: Django中的Form 组件

Django中的Request和Response

Django中的Request和Response