1

假设我在运行 apache 的 Ubuntu 12.04 Web 服务器上有一个这样的网页:

<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
  http-equiv="content-type">
  <title>Name Input</title>
</head>
  <body>
    <form action="./test.py" method="post"> 
      <p> Name: <input type="text" name="name" id="name" value=""/></p> 
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

我想将 的值name用作 shell 脚本的输入,该脚本由这样的 Python CGI 脚本调用。

测试.py:

#!/usr/bin/env python
import commands, cgi, cgitb
form = cgi.FieldStorage() 
name = form.getvalue('name') 
result = commands.getoutput("/usr/lib/cgi-bin/test.sh name")
contents = pageTemplate.format(**locals())
print "Content-type: text/html\n\n"
print contents

在上面的示例代码中,应该如何name传递给 test.sh?

为了完整起见,假设 pageTemplate 如下所示:

pageTemplate = '''<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
  http-equiv="content-type">
  <title>Name Output</title>
</head>
  <body>
    {result}
  </body>
</html>
'''
4

1 回答 1

1

只需将其传递给命令:

result = commands.getoutput("/usr/lib/cgi-bin/test.sh %s" % name)
于 2012-06-27T22:25:12.503 回答