Kapitel 22
CGI-Programmierung
606
Probieren Sie es aus! Sie sehen an diesem Beispiel auch, wie der Querystring aufgebaut ist.
Nach der Adresse des Skripts kommt ein Fragezeichen und dahinter – durch
&-Zeichen
getrennt – die Variablenbelegungen in der Form
variable=wert.
Wenn man in das
<form>-Tag das Attribut method="post" einträgt, werden die Variablen-
inhalte in einem separaten HTTP-Paket übertragen. Im Adressfenster des Browsers sieht
man dann keinen Querystring. Die Post-Methode verwendet man deshalb dann, wenn die
übertragenen Daten nicht gesehen werden sollen. In Abschnitt 22.4 erfahren Sie, wie ein
Python-Skript die Daten aus einem Formular verarbeiten kann. Doch zunächst einmal blei-
ben wir noch bei den Formularen selbst.
22.3.2 Eingabekomponenten in einem HTML-Formular
Im Innern des HTML-Formulars können Sie durch <input>-Tags verschiedene Eingabe-
komponenten spezifizieren.
Eingabefeld
Mit dem input-Tag vom Typ "text" definieren Sie ein einzeiliges Eingabefeld. Das Attribut
size beschreibt die Länge des sichtbaren Bereichs (im obigen Beispiel 15 Zeichen), in den
ein Text der Länge
maxlength geschrieben werden kann. Es ist möglich, dass maxlength
größer als size ist. Dann ist unter Umständen nur ein Teil des Eingabestrings zu sehen.
Passworteingabefeld
Ein Passworteingabefeld ist ein Eingabefeld, in dem die Schrift nicht zu erkennen ist. Pass-
wörter sollten nur mit der Post-Methode übertragen werden.
Beispiel:
Radiobutton
Innerhalb einer Gruppe von Radiobuttons kann immer nur einer gedrückt sein. Sie defi-
nieren einen Radiobutton durch ein
<input>-Tag mit dem Attribut type="radio".
Zusammengehörige Radiobuttons müssen den gleichen Namen tragen (hier:
name="ent-
scheidung"
). Das Attribut checked="checked" spezifiziert den Knopf, der zu Beginn als
»gedrückt« erscheint. Den Radiobuttons sind unterschiedliche Werte zugeordnet (hier:
value="pro" und value="contra"). Beim »Abschicken« des Formulars durch Betätigen
des Submit-Buttons L
OGIN wird der Wert des angeklickten Radiobuttons übertragen.
Beispiel:
http://localhost:8000/cgi-bin/login.py?vorname=Sandra&name=Klein
Passwort: <input type="Password" name="pass" size="12" >
<h3>Wie lautet Ihre Entscheidung?</h3>
<input type="radio" name="entscheidung" value="pro">
607
22.3
Kommunikation über interaktive Webseiten
Falls der zweite Button selektiert wurde, wird (unter der Get-Methode) folgender Query-
string an den Server gesendet:
Checkbox
Eine Checkbox wird durch ein <input>-Tag mit dem Attribut type="checkbox" definiert.
Alles Weitere läuft so wie bei Radiobuttons. Checkbox-Tags können unterschiedliche oder
gleiche Namen haben. Im folgenden Beispiel wurden gleiche Namen verwendet.
Beispiel:
Falls beide Checkboxen angeklickt worden sind und im
<form>-Tag die Get-Methode
gewählt wurde, lautet der Querystring folgendermaßen:
Versteckte Variablen
Häufig ist es notwendig, dass an das CGI-Skript ein Wert gesendet wird, der nicht auf dem
Bildschirm erscheinen soll. In solchen Fällen versteckt man den Wert in einem
<input>-Tag
vom Typ
hidden.
Beispiel:
Submit-Button
Der Submit-Button darf in keiner interaktiven Webseite fehlen. Wenn man ihn anklickt,
wird die Aktion ausgeführt, die im
<form>-Tag spezifiziert worden ist. In unseren Beispie-
len wird immer ein CGI-Skript aufgerufen, aber grundsätzlich sind auch andere Aktionen
möglich. Das Attribut
value enthält die Beschriftung des Buttons.
pro <br>
<input type="radio" checked="checked" name="entscheidung"
value="kontra"> kontra
?entscheidung=kontra
<input type="checkbox" name="hobby" value="Tennis">
Tennis<br>
<input type="checkbox" name="hobby" value="Volleyball"> Volleyball
?hobby=Tennis&hobby=Volleyball
<input type="hidden" name="variable" value="wert">

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.