簡體   English   中英

為什么 jinja 不適用於簡單的模板

[英]Why does jinja isn't working for simple template

我正在嘗試從 html-template 和 python 創建 html 文檔

html模板

<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 15 (filtered)">
<title>Договор подряда № 8/003-07 на выполнение проектных работ</title>
<style>
</style>

</head>
<body bgcolor=white lang=RU>
<div class=WordSection1>

<p class=MsoNormal align=center style='margin-right:-1.15pt;text-align:center'><b><span
style='font-size:12.0pt'>Договор подряда № {{document_number}}</span></b></p>

</div>
</body>
</html>

我想填寫 **document_number ** 但我有空行“”而不是值我該如何解決?

我的代碼

import jinja2  # create html files

templateLoader = jinja2.FileSystemLoader(
    searchpath="./"
)
data_to_render = {
    "document_number": "123",
    "building_object_address": "Moscow"
}
#templateEnv = jinja2.Environment(loader=templateLoader)
templateEnv = jinja2.Environment(
  loader=templateLoader,
  comment_start_string='{=',
  comment_end_string='=}',
)
template = templateEnv.get_template("income_contract_short.html")
sourceHtml = template.render(json_data=data_to_render) 

您將數據作為json_data傳遞給 template.render ,因此模板唯一可用的變量是json_data ,您必須像字典一樣訪問它。

選項1:
在模板中,將{{document_number}}替換為{{json_data['document_number']}}

選項 2:
將您的數據元素作為單獨的關鍵字參數傳遞給 template.render,更改:
sourceHtml = template.render(json_data=data_to_render)

sourceHtml = template.render(document_number=data_to_render["document_number"], address=data_to_render["building_object_address"])
然后,您可以簡單地訪問 building_object_address 數據 {{address}}。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM