如何使用Jinja2将多维Python结构转换为javascript中的相应结构?
示例(Python/Flask):
pyStruct = [{key1:value1, key2:value2, [{subkey1:subvalue1, subkey2:subvalue2,}]},
{key1:value1, key2:value2, [{subkey1:subvalue1, subkey2:subvalue2,}]},]
render_template('jinjatemplate.html', pyStruct=pyStruct)
Run Code Online (Sandbox Code Playgroud)
示例(Jinja2):
??
Run Code Online (Sandbox Code Playgroud)
我想我要问的是,它只能通过在Jinja2中创建复杂的循环结构来完成,还是我在某个地方错过了一个快捷方式?
如果答案是,是的,必须在Jinja2中使用复杂的循环,那么直接在python中创建javascript代码并将其传递给Jinja2以包含它可能要容易得多.
但这似乎打败了使用像Jinja2这样的模板语言的目的......
我试过(Jinja2):
{{ pyStruct|safe }}
Run Code Online (Sandbox Code Playgroud)
...这实际上只要没有unicode就可以工作,并且不会偏离Ascii的土地(在我的情况下通常会这样做).
哦,如果你想知道为什么要通过这种结构?我发现我经常想将相当复杂的结构传递给javascript以供菜单和其他复杂的选择界面使用.
有人可以帮助我了解配置 SQLAlchemy 模型的总体情况,以便在各个级别确保引用完整性吗?
按照引用完整性应该由数据库表达和强制执行的想法,我创建了一个模式(当前在 Postgresql 中),其中包含我认为需要的所有约束,从而为我提供了一个我相信将强制执行引用完整性的数据库。
然后,我开始在该数据库之上构建一个应用程序,在声明模式下使用 SQLAlchemy (0.7)。
经过搜索和阅读后,我了解到我可以配置:
所有这些选项都有默认值。
但我很困惑,我实际上需要对 SQLAlchemy 模型做多少事情,以确保 SQLAlchemy 在会话期间不会与数据库及其约束不同步。
如果我在 SQLAlchemy 中的 Columns() 定义上配置“onupdate”等,我到底能实现什么?
对于级联和passive_delete/passive_update规则,我可以在relationship()上配置。我在这里需要什么,为什么?
或者重新表述我的问题:SQLAlchemy 在多大程度上会意识到数据库模式中配置的约束,以及我必须在多大程度上(以及如何)在我的模型中重复它们?
还有什么我应该注意的吗?:)