我正在尝试从Python CGI脚本创建一个HTML表单。你知道吗
script_name=os.environ.get('SCRIPT_NAME', '')
form = cgi.FieldStorage()
message = form.getvalue("message", "(no message)")
print """
<p>Previous message: %s</p>
<p>form
<form method="post" action="%s">
<p>message: <input type="text" name="message"/></p>
</form>
</body>
</html>
""" % cgi.escape(message), script_name
以上当然不行。我的错误印象是
整个print """ blah blah %s ...""" % string_var
像C的printf
函数一样工作。
那我该在这里干什么呢?你知道吗
我在浏览器中收到以下错误消息:
Traceback (most recent call last):
File "/usr/lib/cgi-bin/hello.py", line 45, in <module>
""" % cgi.escape(message), script_name
TypeError: not enough arguments for format string
不会被解释为
而是作为
在} 方法而不是
cgi.escape(message), script_name
周围加上括号,将元组作为第二个参数传递给%
。顺便说一下,这是您可能希望使用^{%
的原因之一。你知道吗您需要将格式参数包装在括号中。你知道吗
当代码执行时,发生的第一件事就是计算表达式
因为在长字符串中有两个键,但在
%
操作符的另一侧只有一个值,所以您看到的TypeError
操作失败。你知道吗解决方案是将两个值都用括号括起来,这样第二个操作数就被解释为元组:
相关问题 更多 >
编程相关推荐