Python: CGI-Programmierung
Mit dem Modulcgi
steht standardmäßig ein relativ komfortables Interface zur CGI-Programmierung zur Verfügung. Es unterstützt den Programmierer insbesondere bei der Auswertung der Felder von Eingabemasken. Das Folgende Skript erzeugt eine Maske, bzw. gibt deren Inhalt aus: import cgi
import cgitb; cgitb.enable()
form = cgi.FieldStorage()
if form.has_key('submit') and form.has_key('name') and
form.has_key('age'):
print 'Content-Type: text/htmlnn'
print '''
<html><head><title>Eingegebene Werte</title></head>
<body>
Sie heissen %(name)s und sind %(age)s Jahre alt.
</body></html>''' % {'name' : form['name'].value,
'age' : form['age'].value}
else:
print 'Content-Type: text/htmlnn'
print '''
<html><head><title>Test-Maske</title></head>
<body>
<h3>Bitte Name und Alter eingeben:</h3>
<form method="post" action="example1.cgi">
<table border=0>
<tr><td>Name:</td><td><input type="text" name="name"/></td></tr>
<tr><td>Alter:</td><td><input type="text" name="age"/></td></tr>
</table>
<input type="submit" name="submit" value="OK"/>
</form>
</body></html>'''
cgi
und cgitb
, wobei cgitb
zum Debuggen wichtig ist: es zeigt bei einem eventuell auftretenden Fehler einen Traceback an. Daraufhin wird getestet, ob die Maske vollständig ausgefüllt wurde; wenn ja, wird deren Inhalt angezeigt, sonst die Maske selbst erzeugt.
Datenbankanbindung
In einem "richtigen" CGI-Programm wird der Inhalt der Maske wohl in eine Datenbank geschrieben werden; hier bietet Python mit dem DB API eine Standardschnittstelle, die für viele verschiedene Datenbanken implementiert ist. Hier ein kleines Beispiel für SQLite, dass das "Look & Feel" des DB API zeigen soll:import sqlite
conn = sqlite.connect("/path/to/my.db")
cursor = conn.cursor()
cursor.execute("select * from employees where wage > 5000")
while 1:
employee = cursor.fetchone()
if employee is None:
break
print employee
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Web-Frameworks
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project