- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Mako 文件(我的 Python 服务器将其转换为 HTML),其中包含带有 JavaScript ES6 模板文字的脚本元素。由于 Mako 和 JS 都识别 ${..}
,我被迫编写 ${'${..}'}
以使 JS 模板正常工作 —${{..}}
类似于 f 字符串,什么也不做,我找不到可以转义它的 |
标志。说
<script>
//This is just an example
let entry = {title: '${some_py_value}'} //Mako templating
$('body').append(`${'${entry.title}'}`); //JS templating
</script>
这可行,但看起来很尴尬,就像你在 Perl 中看到的那样,以至于我经常恢复到字符串连接——这通常表明存在更优雅的解决方案。有吗?
最佳答案
可以使用标签 <%text>
关闭模板。和</%text>
(ref)。介于两者之间的任何内容都将呈现为文本并且不会被解析。
<script>
//This is just an example
let entry = {title: '${some_py_value}'} //Mako templating
<%text>
$('body').append(`${entry.title}`); //JS templating
</%text>
</script>
这比${'${jsVariable}'}
有优势如果两者不混合,即首先在 JS 中一次性传递 Python 变量,这才是应该发生的*。问题是%if
和%for
不适用于 %text
block ,但这些应该是 JS 编码的。
*) 好的,理想情况下,所提供的 HTML 页面应该是通用的,而不需要外部的主要 JS 代码作为单个文件,并由多个 ajax 请求填充用户数据。尽管总是存在一些极端情况(例如巨大的Python非JSON可序列化对象,其方法复杂且计算量大,需要频繁调用,但不能作为一系列ajax请求运行,因为数据需要首先初始化但不能存储在服务器端等)。
关于Mako 模板中的 JavaScript 模板文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57360613/
下面抛出一个语法错误,“解析时出现意外的 EOF”: ${foo({'bar':'baz'})} 我猜这是来自内部闭合花括号。 这工作正常: ${foo(dict(bar='baz'))} 但是使用字
我在查看 Mako 的文档时发现了 Mako 的 TemplateLookup 函数:Using TemplateLookup .但是,我从未在 Pyramid 的文档中看到过这一点,因为我从来不需要
在 mako 模板中输出一些 UGC( $user.text )时,我想使用 mako 过滤器 'h' 清理内容,然后添加一些 标签代替换行符,所以有一些格式。 但是,mako 似乎忽略了我应用 'h
我是 Python 和 Mako 等新手。我的问题可能看起来很愚蠢,我提前道歉,但我查看了文档但找不到它。 在.py文件中,我可以使用#字符来记笔记。我也可以使用 ''' notes notes ''
我有一个想法,将模板放入数据库中,并为设计者提供直接从 CMS 面板编辑模板的可能性。但困扰我的是安全问题。如果我们能够将 python 命令直接放入模板中,那它怎么会安全呢?如果我在 mako 模板
有没有一种简单的方法可以在 mako 中调用给定字符串名称的函数? 最佳答案 您应该能够在 globals() 返回的字典中查找它。例如: ${globals()[func_name](...)}
我有这样一个方法: def index(self): title = "test" return render("index.html", title=title) 其中 render
有没有办法将包含错误的模板字符串添加到 mako 的错误跟踪中? 最佳答案 我认为您不太可能找到这样的东西。与所有其他快速 python 模板引擎一样,Mako 通过将您的模板编译为 python 代
我正在尝试读取数据库表内容并使用 mako 和 bottle 将其显示为网页。该表中有一些 Unicode (utf-8) 字段。 UnicodeDecodeError('ascii', 'MOTOR
这是我的 Mako 代码,但当我将此代码与我的服务器 Cherrypy 一起使用时出现错误。错误是 SyntaxException: (SyntaxError) invalid syntax (, l
以下示例来自 Mako docs实际上不起作用: inner, x is ${x}, y is ${y} outer, x is ${x},
我们有这段代码并且运行良好。重构后,它不再起作用了。正如评论所说,如果请求不是 ajax 请求,我们只想从基页继承。为此,我们将一个参数传递给模板,并根据该参数决定是否继承。 查看.py class
目标:在基础模板和子模板中访问 myargs。目前我只能访问其中一个。 调用: child.render(myargs={'a':2, b:'5'}) 基本摘录: % if myargs['a']:
是否可以在渲染前获取 Mako 模板中变量的名称? from mako.template import Template bar = Template("${foo}") # something li
在从 Mako 模板自动生成代码的用例中,我希望有一个很好的语法来删除前导空格(类似于使用行尾的 \ 删除换行符)。 下面的代码 from mako.template import Template
我希望能够创建一个变量“hasBannana”,该变量仅存在于检查某些事情的 mako 模板 html 中。假设杂货和商店是从生成模板的函数传入的。 %for customer in store: h
每次我尝试在 Sublime Text 中使用这个语法荧光笔时都会弹出这个错误。我不确定我将如何修复它,谷歌似乎没有显示任何结果。是否有人恰好是 XML/TM 语法专家可以提供帮助? 错误。 加载语法
我有一个 Mako 文件(我的 Python 服务器将其转换为 HTML),其中包含带有 JavaScript ES6 模板文字的脚本元素。由于 Mako 和 JS 都识别 ${..},我被迫编写 $
以下内容适用于 Python 命令行 CELLULAR='1.2.3.4' OCTETS=CELLULAR_IP.split('.') FOURTH_OCTET=OCTETS[3] T101_IP='
我想找到一种方法来截断标题(如果太长),如下所示: 'this is a title' 'this is a very long title that ...' 有没有办法在mako中打印字符串,并在
我是一名优秀的程序员,十分优秀!