611
22.6
CGI-Skripte debuggen
Wenn nun der zuvor eingegebene Name Umlaute oder ß enthält, müssen diese in dem
HTML-Dokument durch bestimmte Zeichenfolgen, die mit
& beginnen, ersetzt werden. Für
diese Ersetzungen kann man die String-Methode
translate() verwenden. Das folgende
Skript zeigt ein Beispiel. Veränderungen gegenüber dem Skript aus dem letzten Abschnitt
sind fett gesetzt:
Erläuterung:
#1: Hier wird ein Dictionary definiert, das den Unicode-Nummern der deutschen Umlaute
und des
ß einen HTML-Namen zuordnet. Ein solches Dictionary benötigt die String-
Methode
translate().
#2: In den Strings name und vorname werden Sonderzeichen durch HTML-Namen ersetzt.
22.6 CGI-Skripte debuggen
Wenn man ein fehlerhaftes CGI-Skript über einen Webbrowser aufruft, erhält man ein lee-
res Fenster. Denn das Skript wird nicht ausgeführt oder bricht ab, ehe es eine Ausgabe pro-
duzieren kann. Sie erhalten keine Fehlermeldung, die Ihnen einen Hinweis über Ort und
Art des Fehlers liefern könnte.
Zur Erleichterung der Fehlersuche kann man in ein CGI-Skript folgende zwei Zeilen ein-
bauen:
#! c:/Python35/python.exe
import cgi, cgitb
cgitb.enable()
HTML = {ord("ä"): "ä", ord("ö"): "ö",
ord("ü"): "ü", ord("Ä"): "Ä",
ord("Ö"): "Ö", ord("Ü"): "Ü",
ord("ß"): "ß"} #1
form = cgi.FieldStorage()
vorname = form.getvalue('vorname', "")
name = form.getvalue('name', "")
print('Content-type: text/html; charset=utf-8')
print()
print('<html>')
print('<head><title> Login-Seite </title></head>')
print('<body>')
print('<h3>Herzlich willkommen,',
vorname.translate(HTML),
name.translate(HTML),'!</h3>') #2
print('</body>')
print('</html>')

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.