html中的大括号和百分号是啥意思?
Posted
技术标签:
【中文标题】html中的大括号和百分号是啥意思?【英文标题】:What dose the curly-brace and percent sign mean in html?html中的大括号和百分号是什么意思? 【发布时间】:2013-01-31 00:11:01 【问题描述】:我正在学习如何在 Django 框架中开发网站。 模板 html 文件有一些我不明白的地方。
我看到教程使用花括号(<% if ... %> <% endif %>
等)在代码中嵌入逻辑。但是当我尝试在非 Django 服务器(Apache)中使用这种语法时,这种语法没有被解释,我可以在我的页面上看到我的 <% if ... %>
...。
我不知道这是为什么。
所以这个语法不是 HTML 的一部分,而是 Django 的一部分,所以它可以被它解释?
【问题讨论】:
@Mansfield php 代码?再试一次。 @Chris。哎呀 :( 我出于某种疯狂的原因想到了 smarty....<
/ >
不是“花括号”;
/
是“卷曲的”
<
和 >
是 called angle brackets or chevrons(适用于不知道如何搜索这些字符的人)。
(我没有足够的声誉来发表评论,所以我会发布一个答案。)正如所指出的,Django 使用 % %。您发布的尖括号 + 百分号 称为“Code Render Blocks”,由 ASP.NET 使用。希望这会有所帮助
【参考方案1】:
首先,Django 模板语言的正确标签是% %
,而不是<? ?>
。
你说得对,这是 Django 的一部分。这是domain specific language 的一个示例,正如***所说,它是为特定任务发明的语言。在这种情况下,构建 Django 模板语言是为了处理模板。
它之所以有效,是因为 Django 带有 parser 来解释语言并理解它。解析器接受一个在 HTML 或任何其他语言中可能没有意义的字符串,例如 % block Pasta % 并将其转换为有意义的东西。在这种情况下,它最终会输出 HTML。
碰巧您可以用任何语言编写自己的解析器来解释 Django 模板语言,甚至完全编写一种新语言。但是,随着您的语言变得越来越复杂,此类任务的难度也会增加,并且还取决于您选择的语言。众所周知,PHP 不擅长解析,而众所周知,其他语言(如 Perl)更擅长解析。一般来说,只需 run a search 并使用预构建的解析器而不是重新发明***要容易得多。虽然这当然是一种不那么有趣的方式:)
p.s. This might be of interest to you.
【讨论】:
真的,真的。但否则我的答案是正确的,是吗?我会向他添加一个注释,他上面使用的标签不太正确。以上是关于html中的大括号和百分号是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章