CGI-Script
Andy Froemmel
andy.froemmel at sap.com
Mon Feb 24 09:08:46 EST 2003
Sorry, my mistake...
Hallo,
I have running a HTTPCGI.py :
import BaseHTTPServer
import CGIHTTPServer
class Handler(CGIHTTPServer.CGIHTTPRequestHandler):
cgi_directories = ["/cgi-bin"]
PORT = 8000
httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler)
print "Service an Port", PORT
httpd.serve_forever()
furthermore I send data form a HTML-Side:
<html>
<head>
<title>Beispiel-Formular für Python</title>
</head>
<body bgcolor="#ffffdf" text="#000000" link="#0000ff"
vlink="#800080" alink="#ff0000">
<h2> Ein Beispiel-Formular (CGI in Python)</h2>
<form action="/cgi-bin/trex.py" method="post"
name="beispiel">
<p>
Die erste GUID<br>
<input type="text" size="70" name="GUID1">
</p>
<p>
Die zweite GUID<br>
<input type="text" size="70" name="GUID2">
</p>
<br>
<p>
Der erste Host<br>
<input type="text" size="20" name="HOST1">
</p>
<br>
<p>
Der zweite Host<br>
<input type="text" size="20" name="HOST2">
</p>
<br>
<input type="SUBMIT" value="Abschicken">
<input type="RESET" value="Lieber doch nicht . . .">
</form>
</body>
</html>
to the following py-script:
import cgi
import sys
import traceback
fname = 'log_cgi.txt'
fname1 = 'error_cgi.txt'
def ausgabe(g1, g2, h1, h2):
nachricht =''
nachricht = g1 + g2 + h1 + h2 + '\n<br>\n'
return nachricht
# main
sys.stderr = sys.stdout
print "Content-Type: text/html\n\n"
form=cgi.FieldStorage()
if form.has_key("GUID1") and form.has_key("GUID2") and
form.has_key("HOST1") and form.has_key("HOST2"):
if form["GUID1"].value != "" and
form["HOST1"].value != "":
form_ok = 1
g1 = form["GUID1"].value
g2 = form["GUID2"].value
h1 = form["HOST1"].value
h2 = form["HOST2"].value
content = str(g1 + g2 + h1 + h2)
file = open(fname, 'w')
file.write(content)
file.close()
#print "Content-Type: text/html\n\n"
print '</title>\n</head>\n<body
bgcolor="#ffffdf" text="navy">\n'
#print ausgabe(g1, g2, h1, h2)
print str(g1)
else:
print "<html><head><title>\n"
print "Python is calling you!\n"
print '</title>\n</head>\n<body bgcolor="#ffffdf"
text="navy">\n'
print 'da ist noch ein Fehler'
#print ausgabe(g1, g2, h1, h2)
print "</body>\n</html>\n\n"
The process is running (the data form the HTML-Side are
send to the py-script and written in an txt-file)
The problem is to get the response-side.
I mean, If I send the form to the script, I get
the message:
"The page cannot be displayed". If I make a refresh
of the html-side, the right information form the "else-function"
are shown.
Why does not send the script the information from the
form back to the HTML-side??
Thanks and best regards,
Andy
More information about the Python-list
mailing list