Problem mit einfachem Python Formular

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Ravebaby
User
Beiträge: 14
Registriert: Donnerstag 24. Februar 2005, 10:32
Kontaktdaten:

Ich möchte ein einfaches Python Formular schreiben. Und zwar mit 2 Eingabefeldern für Name + Alter und einem Submit Button. Sind beide Felder ausgefüllt und wird der Submit Button gedrückt, soll eine neue Seite erscheinen, die meine Eingaben ausgibt. Hab folgenden Code geschrieben, allerdings lande ich auch wenn die Werte ausgefüllt sind nie im "if" Block, sondern immer im "else". Warum?!

Code: Alles auswählen

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/html\n\n'
    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/html\n\n'
    print '''
<html><head><title>Test-Maske</title></head>
<body>
 <h3>Bitte Name und Alter eingeben:</h3>
 <form method="post">
 <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>'''
Edit (Leonidas): Code in Python Tags gesetzt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Also bei mir geht dein Code einwandfrei, nachdem ich noch eine Shebang Zeile (#!/usr/bin/env python) hinzugefügt habe.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

Ich hab die Zeile auch reingehauen, aber das Skript verhält sich unverändert...
Also es kommt das Fenster mit den beiden Eingabefeldern und wenn ich auf OK klick, kommt leider auch das Fenster mit den beiden Feldern und eben nicht die Ausgabe: Eingegebene Werte : Sie sind ... Jahre alt und heisse ...

Und das funktioniert bei Dir?!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das funktioniert einwandfrei, guck es dir mal an. Ich werde es aber bald löschen, da es dort eigentlich nicht sein sollte..
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ravebaby
User
Beiträge: 14
Registriert: Donnerstag 24. Februar 2005, 10:32
Kontaktdaten:

super, vielen Dank. Dann weiss ich schonmal, wie es aussehen kann ;)
Keine Ahnung, warum das dann bei mir nicht tut. Aber er kommt einfach von der Eingabemaske nicht weg....
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Vielleicht hast du ja im Binärmodus übertragen? Ich habe einfach eine Putty Session aufgemacht und in nano eingefügt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ravebaby
User
Beiträge: 14
Registriert: Donnerstag 24. Februar 2005, 10:32
Kontaktdaten:

ich versteh nich so genau was meinst...
Also ich hab halt nen Server in der cmd gestartet und dann das Skript aufgerufen. Mehr nicht. Wusste nicht, dass da noch mehr nötig ist.
Putty ist doch was zum files übertragen?!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ach so, das läuft bei dir lokal! Ja, dann ist es was anderes... was hast du denn für einen Server?

Putty ist ein SSH Client, was aber mit deinem Problem nichts zu tun hat. Ich habe es nur genutzt, um die Datei auf meinen Server zu bekommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Lass dir doch auch beim Formular die Werte von cgi.FieldStorage() ausgeben... Vielleicht als HTML-Kommentar... Dann weißt du ob da was schief läuft...
Antworten