python:pythoncgi:cgiformulare
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
python:pythoncgi:cgiformulare [2023/08/23 08:36] – lutz | python:pythoncgi:cgiformulare [2024/05/24 07:48] (aktuell) – lutz | ||
---|---|---|---|
Zeile 29: | Zeile 29: | ||
Neu ist das Attribut '' | Neu ist das Attribut '' | ||
- | <code python script03_auswertung.html> | + | <code python script03_auswertung.py> |
# | # | ||
import cgi | import cgi | ||
Zeile 71: | Zeile 71: | ||
Anschließend werden der Kopf- und der Fußquelltext der Seite als Variablen angelegt. | Anschließend werden der Kopf- und der Fußquelltext der Seite als Variablen angelegt. | ||
- | Danach wird mit dem Befehl '' | + | Danach wird mit dem Befehl '' |
Nun wird mit mehreren '' | Nun wird mit mehreren '' | ||
+ | **Aufgabe 1** | ||
+ | Teste die Scripte. Lass dir weitere Formularelemente einfallen, die du dann auswertest. | ||
+ | |||
+ | Das Ganze kann man auch in einer Datei zusammenfassen: | ||
+ | |||
+ | <code python script04.py> | ||
+ | # | ||
+ | import cgi | ||
+ | |||
+ | header = ''' | ||
+ | < | ||
+ | |||
+ | <html lang=" | ||
+ | < | ||
+ | <meta charset=" | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | < | ||
+ | ''' | ||
+ | |||
+ | footer = ''' | ||
+ | </ | ||
+ | </ | ||
+ | ''' | ||
+ | |||
+ | form = cgi.FieldStorage() | ||
+ | |||
+ | |||
+ | print(header) | ||
+ | if form.getvalue(" | ||
+ | if form.getvalue(" | ||
+ | name = form.getvalue(" | ||
+ | print("< | ||
+ | if form.getvalue(" | ||
+ | alter = int(form.getvalue(" | ||
+ | print("< | ||
+ | if form.getvalue(" | ||
+ | print("< | ||
+ | if form.getvalue(" | ||
+ | print("< | ||
+ | else: | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("</ | ||
+ | |||
+ | |||
+ | print(footer) | ||
+ | </ | ||
+ | |||
+ | Wie funktioniert nun dieses Script? | ||
+ | |||
+ | Im Prinzip ist der Aufbau ähnlich wie bei script03_auswertung.py. Der Unterschied ist, dass zunächst mit der if-Anweisung getestet wird, ob im Formularelement " | ||
+ | |||
+ | **Aufgabe 2** | ||
+ | |||
+ | Schreibe dein geändertes Script so um, dass es in einer Datei funktioniert. | ||
+ | |||
+ | |||
+ | |||
+ | Ein komplexes Beispiel für ein Kopfrechenprogramm: | ||
+ | |||
+ | <code python script06.py> | ||
+ | # | ||
+ | import cgi, cgitb, random | ||
+ | |||
+ | cgitb.enable() | ||
+ | |||
+ | header = ''' | ||
+ | < | ||
+ | |||
+ | <html lang=" | ||
+ | < | ||
+ | <meta charset=" | ||
+ | < | ||
+ | <link href=" | ||
+ | </ | ||
+ | < | ||
+ | <div class=" | ||
+ | | ||
+ | | ||
+ | ''' | ||
+ | |||
+ | footer = ''' | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | ''' | ||
+ | |||
+ | |||
+ | form = cgi.FieldStorage() | ||
+ | |||
+ | |||
+ | print(header) | ||
+ | print("< | ||
+ | |||
+ | if form.getvalue(" | ||
+ | ro = form.getvalue(" | ||
+ | anz = int(form.getvalue(" | ||
+ | opmin1 = int(form.getvalue(" | ||
+ | opmax1 = int(form.getvalue(" | ||
+ | opmin2 = int(form.getvalue(" | ||
+ | opmax2 = int(form.getvalue(" | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | if ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | a = random.randint(opmin1, | ||
+ | b = random.randint(opmin2, | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | elif ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | while(True): | ||
+ | a = random.randint(opmin1, | ||
+ | b = random.randint(opmin2, | ||
+ | if a>b: | ||
+ | break | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | elif ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | a = random.randint(opmin1, | ||
+ | b = random.randint(opmin2, | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | elif ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | while(True): | ||
+ | a = random.randint(opmin1, | ||
+ | b = random.randint(opmin2, | ||
+ | if a > b and a%b == 0 and b > 1: | ||
+ | break | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("</ | ||
+ | elif form.getvalue(" | ||
+ | ro = form.getvalue(" | ||
+ | anz = int(form.getvalue(" | ||
+ | if ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | if form.getvalue(" | ||
+ | e = int(form.getvalue(" | ||
+ | else: | ||
+ | e = None | ||
+ | a = int(form.getvalue(" | ||
+ | b = int(form.getvalue(" | ||
+ | if e == None: | ||
+ | print("< | ||
+ | else: | ||
+ | if e == a+b: | ||
+ | print("< | ||
+ | else: | ||
+ | print("< | ||
+ | elif ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | if form.getvalue(" | ||
+ | e = int(form.getvalue(" | ||
+ | else: | ||
+ | e = None | ||
+ | a = int(form.getvalue(" | ||
+ | b = int(form.getvalue(" | ||
+ | if e == None: | ||
+ | print("< | ||
+ | else: | ||
+ | if e == a-b: | ||
+ | print("< | ||
+ | else: | ||
+ | print("< | ||
+ | elif ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | if form.getvalue(" | ||
+ | e = int(form.getvalue(" | ||
+ | else: | ||
+ | e = None | ||
+ | a = int(form.getvalue(" | ||
+ | b = int(form.getvalue(" | ||
+ | if e == None: | ||
+ | print("< | ||
+ | else: | ||
+ | if e == a*b: | ||
+ | print("< | ||
+ | else: | ||
+ | print("< | ||
+ | elif ro == ' | ||
+ | print("< | ||
+ | for i in range(anz): | ||
+ | if form.getvalue(" | ||
+ | e = int(form.getvalue(" | ||
+ | else: | ||
+ | e = None | ||
+ | a = int(form.getvalue(" | ||
+ | b = int(form.getvalue(" | ||
+ | if e == None: | ||
+ | print("< | ||
+ | else: | ||
+ | if e == a//b: | ||
+ | print("< | ||
+ | else: | ||
+ | print("< | ||
+ | print("< | ||
+ | print("< | ||
+ | print("</ | ||
+ | |||
+ | else: | ||
+ | print("< | ||
+ | print("< | ||
+ | print(""" | ||
+ | < | ||
+ | < | ||
+ | <input type=" | ||
+ | <label for=" | ||
+ | <input type=" | ||
+ | <label for=" | ||
+ | <input type=" | ||
+ | <label for=" | ||
+ | <input type=" | ||
+ | <label for=" | ||
+ | </ | ||
+ | < | ||
+ | | ||
+ | < | ||
+ | <p> | ||
+ | <select name=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | <p>In welchem Bereich sollen die Operanden liegen?</ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | </p> | ||
+ | """ | ||
+ | print("< | ||
+ | print("</ | ||
+ | |||
+ | |||
+ | print(footer) | ||
+ | </ | ||
+ | |||
+ | **Aufgabe3** | ||
+ | |||
+ | Teste das Script und versuche den Quelltext zu verstehen! Versuche ein ähnliches Programm mit anderen Aufgabeentypen zu schreiben. |
python/pythoncgi/cgiformulare.1692772561.txt.gz · Zuletzt geändert: 2023/08/23 08:36 von lutz