列出vi中的金字塔模板文件

2024-03-29 01:22:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让我的一些模板在我的web应用程序中用户可编辑(实际的模板,而不仅仅是通过替换变量替换内容)。但我不知道如何获得模板文件的列表。在

显然,如果我知道真正的路径,我就可以使用常规的python工具。但是有没有一种方法可以用some.package:templates/template.pt语法获得实际的文件位置呢?在

我想得到一个模板文件的列表,比如some.package:templates/email/。有办法吗?在


Tags: 文件工具方法用户路径模板web应用程序
1条回答
网友
1楼 · 发布于 2024-03-29 01:22:38

要从点式资产规范出发,您可以使用pyramid.path.AssetResolver,正如documentation所述,如下所示:

from pyramid.path import AssetResolver

a = AssetResolver()
resolver = a.resolve('myproject:templates/foo.pt')
print(resolver.abspath())
# -> /path/to/myproject/templates/foo.pt

具体来说,它对解析路径有这样的描述:

If spec is an absolute filename (e.g. /path/to/myproject/templates/foo.pt) or an absolute asset spec (e.g. myproject:templates/foo.pt), an asset descriptor is returned without taking into account the package passed to this class' constructor.


但是我强烈建议不要让用户直接修改包中的模板文件。相反,我建议您在安装过程中使用一种方法,将所有模板从包中复制出来,然后使用Pyramids asset override机制将现有的资产规范分包到新的位置。此时,您可以使用标准的Python打开/关闭文件方法让用户更新模板。在

相关问题 更多 >