我正在尝试制作一个简单的网站演示,我在使用python编辑html时遇到了一些麻烦。以下是我为存储html定义的字符串(不完整,因为它太长)。我想编写一个在某种条件下会抛出错误的函数,但我不知道如何在字符串“page”中插入一行。
page="""
<html>
<head>
<title>Sign up</title>
<style type="text/css">
.label {text-align: right}
.error {color: red}
</style>
</head>
<body>
<h2>Sign up</h2>
<form method="post">
<table>
<tr>
<td class="label">
Username
</td>
<td>
<input type="text" name="username" value="">
</td>
<td class="error">
</td>
</tr>
<tr>
<td class="label">
Password
</td>
<td>
<input type="password" name="password" value="">
</td>
<td class="error">
</td>
</tr>
我想在这两行之间的空白处插入“有错误”行:
<td class="error">
</td>
注意字符串中有两个这样的组。如何使用Python在第一组中插入“有错误”?谢谢。
答案 0 :(得分:1)
python使用C样式格式字符串。
page="""<html>
......
<td class="error">
%s
</td>
</tr>""" % "There was an error"
或者,你可以使用python string.format作为
"fooo {x}".format(x="bar").
见(https://docs.python.org/2/library/string.html);
如果你有时间的话,jinja是一个很好的模板引擎。 Genshi(https://genshi.edgewall.org/wiki/GenshiTutorial)也值得研究。对于Jinja2:
pip install Jinja2
在python中
from jinja2 import Template
page = Template("""<html> ....
<td class="error">{{x}}</td>
""")
page.render(x="There was an error")