亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將 Jinja2 模板渲染為帶有布局的字符串

將 Jinja2 模板渲染為帶有布局的字符串

慕少森 2021-06-04 18:36:43
是否可以將 jinja2 模板也從 string 返回到帶有布局的 string ?我知道這是可能的:from jinja2 import Templatehtml = "{{var}}"t = Template(html)print t.render(var="X")但我需要使用像這樣擴展的 jinja 模板layout = "HEY {%block content%}{%endblock%}"html = "{%block content%}{{var1}}{%endblock%}"t = Template(html, layout=layout)當然 layout=layout 不起作用 - 這就是我要找的
查看完整描述

1 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

擴展由加載器而不是模板處理,因此您需要一個加載器。這樣的事情怎么樣?


from jinja2 import DictLoader, Environment, Template


def render_with_layout(template_string, layout, **kwargs):

    loader = DictLoader({

        'layout': layout,  # wrap in Template() if necessary

        'template': Template('{% extends "layout" %}' + template_string),

    })

    env = Environment(loader=loader)

    return env.get_template('template').render(**kwargs)


查看完整回答
反對 回復 2021-06-16
  • 1 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號