Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:pythoncgi:cgiformulare

Dies ist eine alte Version des Dokuments!


Auswertung von Formularen mit CGI

Mit Hilfe von CGI lassen sich auch Webformulare auswerten. Das Formular kann dabei direkt in einer HTML-Datei stehen, es kann aber auch mit Hilfe einer Pythondatei durch CGI erzeugt werden. Dazu als erstes ein einfaches Beispiel:

Zunächst erstellen wir in unserem Webserver-Verzeichnis die folgende HTML-Datei mit einem Formular:

formular.html
<!DOCTYPE html>
 
<html lang="de">
    <head>
        <meta charset="utf-8">
        <title>Python - CGI-Programmierung</title>
 
    </head>
    <body>
 
	<form method='post' action='cgi-bin/script03_auswertung.py'>
		<p>Name: <input type='text' name='name' /></p>
		<p>Alter: <input type='text' name='alter' /></p>
		<input type='checkbox' name='happy' /> Happy
		<input type='checkbox' name='sad' /> Sad
		<input type='submit' name='submit' value='Submit' />
	</form>
    </body>
</html>

Neu ist das Attribut action im <form>-Tag. Es verweist auf das Script script03_auswertung.py, welches sich im Ordner cgi-bin befindet. Die Formulardaten werden nun als Werte von Variablen an dieses Script übermittelt. Das Script ist wie folgt aufgebaut:

script03_auswertung.html
#!/usr/bin/env python3
import cgi
 
header = '''
<!DOCTYPE html>
 
<html lang="de">
    <head>
        <meta charset="utf-8">
        <title>Python - CGI-Programmierung</title>
 
    </head>
    <body>
'''
 
footer = '''
    </body>
</html>
'''
 
form = cgi.FieldStorage()
 
print(header)
if form.getvalue("name"): 
    name = form.getvalue("name") 
    print("<h1>Hello " +name+"! Thanks for using my script!</h1><br />") 
if form.getvalue("alter"):
    alter = int(form.getvalue("alter"))
    print("<p>In ten years, you will be",alter+10,"years old.</p>")
if form.getvalue("happy"): 
    print("<p> Yayy! I'm happy too! </p>") 
if form.getvalue("sad"): 
    print("<p> Oh no! Why are you sad? </p>")
print(footer)

Im Auswertungsscript wird nun eine Webseite erzeugt, die die Formulardaten auswertet. Der wichtigste Befehl zum Auswerten des Formulars ist das Importieren der CGI-Bibliothek import cgi

Anschließend werden der Kopf- und der Fußquelltext der Seite als Variablen angelegt.

Danach wird mit dem Befehl form = cgi.FieldStorage() aus der Bibliothek cgider Inhalt des Formulars in deer Variable form gespeichert.

Nun wird mit mehreren print

python/pythoncgi/cgiformulare.1692772163.txt.gz · Zuletzt geändert: von lutz