Python: 如何在多行字符串中插入一行?
Python: How to insert a line in a multi-line string?
我正在尝试制作一个简单的网站演示,但我在使用 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>
我想在这两行之间的空白处插入行 "There is an error":
<td class="error">
</td>
注意字符串中有两个这个组。如何使用 Python 在第一组中插入 "There is an error"?谢谢。
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")
我正在尝试制作一个简单的网站演示,但我在使用 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>
我想在这两行之间的空白处插入行 "There is an error":
<td class="error">
</td>
注意字符串中有两个这个组。如何使用 Python 在第一组中插入 "There is an error"?谢谢。
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")