【发布时间】:2011-05-13 14:22:22
【问题描述】:
更新 1 添加更新代码
我在应用引擎上有一个 django 模板。目前我所有的数据都在几个模板中,我想从磁盘上读取模板。非常简单,但我想从 AppEngine 中的这些模板中获取值。
例如。文件:p1.html
{%block price%}$259{%endblock%}
{%block buy%}http://www.highbeam.co.nz/store/index.php?route=product/product&path=6&product_id=116{%endblock%}
{%block info%}http://www.inov-8.co.nz/oroc280.html{%endblock%}
我可以将这些模板加载并读取为某个值并继续。
template['price']
应该是
259 美元
我可以轻松地将数据注入模板,但我想解析出块标签之间的数据。
更新 2 在 aaronasterling(谢谢)的帮助下,最终代码是这样的。 从应用引擎上的 Django 模板中获取值的最终代码。 path = os.path.join(os.path.dirname(file), 'home/p2.html')
file = open(path)
entry = file.read()
file.close()
entry = entry.replace("{% extends \"product.html\" %}","")
t = Template(entry)
product = {}
for node in t.nodelist[0].nodelist :
if hasattr(node, 'name'):
product[node.name] = node.render(Context())
【问题讨论】:
-
“我所有的数据都在几个模板中” - 我不明白这一点。为什么模板中有数据?
-
它就像当今最好的 MVC 架构与 1996 年的网站相结合。
-
将所有数据放入模板并放入 Dropbox 以供我的项目经理编辑非常容易 - 只有 15 页数据,将所有这些数据放入数据库中是多余的。
-
你知道什么会更容易吗?一个 Excel 文件。经理喜欢excel。程序员也喜欢 excel,因为他们可以将其转换为 CSV。 DBA 就像 CSV 一样,因为他们可以将其直接导入数据库。
-
我仍然认为这是一个好方法。也许我可以将我的数据渲染到不同的模板中,例如 [{%block price%}{%end block%}] 并从那里开始。
标签: python django google-app-engine