CGI 通用网关接口;CGI 在 Web 服务器和应用之间充当了交互作用,这样才能够处理用户表单,生成并返回最终的动态 HTML 页。
客户端输入给 Web 服务器端的表单可能包括处理过程和一些存储在后台数据库中的表单。
showForm() 函数负责生成表单页面用于用户输入
process() 函数来获得表单数据
import cgi
header = "Content-Type: text/html\n\n"
formhtml = """
<HTML>
<HEAD><TITLE>数据云团</TITLE></HEAD>
<BODY>
<H3>云团</H3>
<FORM ACTION=''>
<B>请输入</B>
<INPUT TYPE=hidden NAME=action VALUE=edit>
<INPUT TYPE=text NAME=person VALUE='NEW USER SIZE=15'>
<P><INPUT TYPE=submit>
</FORM>
</BODY>
</HTML>
"""
fradio = "<INPUT TYPE=radio NAME=howmany VALUE='%s' %s> %s\n"
def showForm():
friends = []
for i in (0, 10, 25, 50, 100):
checked = ''
if i == 0:
checked = "CHECKED"
friends.append(fradio % (str(i), checked, str(i)))
reshtml = """
<HTML>
<HEAD>
<TITLE>输出结果</TITLE>
</HEAD>
<BODY>
<H3>输出列表<I>%s</I></H3>
名字:<B>%s</B><P>
有<B>%s</B> 朋友
</BODY>
</HTML>
"""
def doResults(who, howmany):
print(header+reshtml % (who, who, howmany))
def process():
form = cgi.FieldStorage()
if "person" in form:
who = form['person'].value
else:
who = "NEW USER"
if "howmany" in form:
howmany = form['howmany'].value
else:
howmany = 0
if 'action' in form:
deResults(who, howmany)
else:
showForm()
if __name__ == "__main__":
process()