Python中的基本CGI示例帮助

2024-09-30 08:15:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写Python程序,并尝试使用基本的CGI示例。到目前为止,我已将以下文件保存在同一目录中(标题分别为:cgi101.html和webserver.py):

<html>
<title>Interactive Page</title>
<body>
    <form method=POST action="cgi-bin/cgi101.py">
        <p><b>Enter your name:</b>
        <p><input type=text name=user>
        <p><input type=submit>
    </form>
</body>

import os, sys
from http.server import HTTPServer, CGIHTTPRequestHandler

webdir = '.'
port = 8080

os.chdir(webdir)
srvraddr = ("", port)
srvrobj = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever()

然后在一个名为cgi bin的子目录中,保存了以下名为cgi101.py的脚本:

#!/usr/bin/python
import cgi
form = cgi.FieldStorage()
print('Content-type: text/html\n')
print('<title>Reply Page</title>')
if not 'user' in form:
    print('<h1>Who are you?</h1>')
else:
    print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form['user'].value))

然后按照以下步骤操作:

  1. 从webserver.py和cgi101.html所在的目录运行webserver.py
  2. 导航到http://localhost:8080/cgi101.html这将按预期打开
  3. 当我输入一个名称并提交时,最初我得到一个错误,说cgi脚本是不可执行的。如果我转到cgi101.py,然后运行chmod 744使其可执行,当我重复上述步骤时,以下URL呈现:http://localhost:8080/cgi-bin/cgi101.py但没有任何内容呈现,并且我运行服务器的命令行给出FileNotFound错误

我做错什么了

谢谢你的帮助

理查德


Tags: pyimportform目录httpbintitlehtml

热门问题