1

Apache を実行している Ubuntu 12.04 Web サーバーに、次のような 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このような Python CGI スクリプトによって呼び出されるシェル スクリプトへの入力としての値を使用したいと考えています。

test.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 に答える