gpt4 book ai didi

python - 如何将字典对象传递给 jinja2,其中 dict.keys 是标记,字典值是我想要显示的内容?

转载 作者:行者123 更新时间:2023-11-30 23:41:12 25 4
gpt4 key购买 nike

我是 GAE/Python 新手。我正在尝试渲染 jinja2 模板,其中模板值位于字典对象中。我想做这样的事情:

some markup {{ dict['token001'] }} some more markup {{ dict['token002'] }} etc. 

其中 token001 和 token002 是字典中键的值。

我想这个电话应该是这样的:

template = jinja_environment.get_template(fileName.html)     
outputblob = template.render(dict)

谁能告诉我如何才能做到这一点?我有超过一千个标记化文件,每个文件最多有几十个标记。数据库中有相同标记的多组值,逻辑提取一组标记和值并将它们放入字典中,这就是我想要传递给 jinja2 进行渲染的内容。

谁能告诉我如何将字典对象传递给jinja2,其中字典键是模板标记?

感谢您提供解决方案的任何建议或指示。

++++++编辑的问题++++++我尝试了以下方法,它似乎在一定程度上发挥了作用。

模板文件中的标记现在看起来像 {{tokenvals.tkn001}}

    tokenvals = q.fetch(999)
tokendict = {}
for tokenval in tokenvals:
tokendict[tokenval.tknID] = tokenval.tknValue

template = jinja_environment.get_template('khan-exercise.html')
bloboutput = template.render(tokenvals = tokendict)

至少到目前为止我还没有收到错误消息。但是,当我尝试将结果保存在以下代码中时,出现错误:

    f = GeneratedFiles(
TemplateName = TemplateName
, FileTxt = bloboutput
, Status = 'Published'
)
f.put()

这会导致错误 BadValueError: Expected str, got u'

数据模型是:

class GeneratedFiles(ndb.Model):
TemplateName = ndb.StringProperty()
FileTxt = ndb.BlobProperty()
Status = ndb.StringProperty(default="Pending Translation")

我注意到的一件事是,渲染的字符串在所有有回车符的地方都包含\n。但是,整个呈现的文本是撇号之间的字符串(单引号 - ')。模板文件本身包含很多双引号 - ")。我认为这与它没有任何关系。

我经常看到错误消息:Expected str, got u' 后跟文本,但我从来没有弄清楚是什么原因造成的。

如有任何进一步的建议,我们将不胜感激。

最佳答案

您也可以让我们知道哪些内容不适合您。您是否按照您的预期尝试了通话?什么坏了?

我认为这应该有效..

some markup {{ tokens.token001 }} some more markup {{ tokens.token002 }} etc.

tokens = get_tokens_dict()
template = jinja_environment.get_template(fileName.html)
outputblob = template.render(tokens=tokens)

或者也许..

data = { 'tokens': tokens }
outputblob = template.render(**data)

关于python - 如何将字典对象传递给 jinja2,其中 dict.keys 是标记,字典值是我想要显示的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12151074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com