如题,我试着使用 Template 无法实现
htmlstr="""
<html><head><body>
<input type="text" id="Index_000003_Spec_0001" name="Index_000003_Spec_0001" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000003_Spec_0002" name="Index_000003_Spec_0002" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000003_Spec_0003" name="Index_000003_Spec_0003" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000003_Spec_0004" name="Index_000003_Spec_0004" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000004_Spec_0001" name="Index_000004_Spec_0001" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000004_Spec_0002" name="Index_000004_Spec_0002" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000004_Spec_0003" name="Index_000004_Spec_0003" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000004_Spec_0004" name="Index_000004_Spec_0004" class="text" dtype="Integer" require="false" dmsg="" />
<!--.....200 个输入项......-->
<input type="text" id="Index_000004_Spec_0002" name="Index_000014_Spec_0002" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000004_Spec_0003" name="Index_000014_Spec_0003" class="text" dtype="Integer" require="false" dmsg="" />
<input type="text" id="Index_000004_Spec_0004" name="Index_000014_Spec_0004" class="text" dtype="Integer" require="false" dmsg="" />
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
$("input[type=text]").prop("readonly",true);
$('#Index_000003_Spec_0001').val('$value1');$('#Index_000003_Spec_0002').val('$value2');$('#Index_000003_Spec_0003').val('$value3');$('#Index_000003_Spec_0004').val('$value4');$('#Index_000004_Spec_0001').val('$value5');$('#Index_000004_Spec_0002').val('$value6');$('#Index_000004_Spec_0003').val('$value7');$('#Index_000004_Spec_0004').val('$value8');
//
$('#Index_000014_Spec_0002').val('$value201');$('#Index_000014_Spec_0003').val('$value202');$('#Index_000014_Spec_0004').val('$value203');
</script>
</body></html>"""
value1,value2,value3,value4,value5,value6,value7,value8=63,"ret",67,67,356,4,445,26
from string import Template
htmlstr.substitute(value1,value2,value3,value4,value5,value6,value7,value8)
print(htmlstr)
htmlfile = open(("outfile.html"), "w")
htmlfile.write(htmlstr)
htmlfile.close()
报这个错
AttributeError: 'str' object has no attribute 'substitute':
使用直接赋值也不对,200 多个值一个个赋值实在有些繁琐
htmlstr.substitute(value1=211,value2=421)
1
qs 2017-12-06 11:54:27 +08:00
看看 jinja2 符不符合你的需求
|
2
SP00F 2017-12-06 12:13:48 +08:00
tornado 的 template
参考官方示例: t = template.Template("<html>{{ myvalue }}</html>") print(t.generate(myvalue="XXX")) http://www.tornadoweb.org/en/stable/template.html |
3
xiqingongzi 2017-12-06 12:22:40 +08:00 via iPhone
|
4
xpresslink 2017-12-06 22:40:17 +08:00
python 的很多 web 框架都有模板系统
也有很多独立的第三方模板。 比如 jinja2, mako, cheatah 其实个人推荐直接用 bottle 带的那个模板引擎。因为 bottle 就一个文件 那个模板语法完全是 Python 脚本包了一层,一看就会了。 |
5
qile1 OP 谢谢楼上各位回帖,已经直接 template 传入字典列表直接安全替换就可以
|