Hallo,
ich arbeite gerade in der Schule an einem Projekt indem ich über ein HTML Formular mit Python eine MySQL Datenbank abfragen soll und die Antwort wieder im Browser anzeigen lassen soll.
Ich hab das Formular fertig die Python Datei und SQL Datenbank.
In der Schule funktioniert das auch einwand frei.
Wenn ich jedoch bei mir zu Hause vom HTML Formular aus Werte eingebe und auf abschicken klicke, wird mir nur die komplette Python Datei als TEXT im Browser angezeigt. Obwohl die Datei fhelerfrei ist. Ich habe sie aus dem IDLE Editor ausgeführt und dort funktioniert alles, nur eben nicht über da HTML Formular.
Kennt ihr das Problem?
Ich hoffe ihr könnt mir helfen...
Vielen Dank
Browser zeigt das Abfrage Ergebnis nicht an!
-
- User
- Beiträge: 6
- Registriert: Sonntag 27. Februar 2011, 00:14
CGI denke ich.
Hier ist mal das script von der Python Datei welche in der Schule funktioniert aber bei mir nicht.
oder seht ihr dort doch einen Fehler???
Hier ist mal das script von der Python Datei welche in der Schule funktioniert aber bei mir nicht.
Code: Alles auswählen
#!C:\python25\python.exe
import cgi, MySQLdb
form = cgi.FieldStorage()
print "Content-type: text/plain"
print
geschlecht = form.getvalue('geschlecht')
stufe = form.getvalue('stufe')
sportart = form.getvalue('sportart')
anzahl = form.getvalue('anzahl')
print "Ihre Auswahl:"
print "Geschlecht: %s" % geschlecht
print "Klassenstufe: %s" % stufe
print "Sportart bzw. Punkte: %s" % sportart
print "Anzahl: %s" % anzahl
stufe = "'%" + stufe + "%'"
conn = MySQLdb.connect(host="localhost", user="***", passwd="",db="Sportfest")
cursor = conn.cursor()
sql = """SELECT Name, Vorname, Geschlecht, Klasse, %s FROM bjs_data
WHERE
Klasse LIKE %s AND
Geschlecht = '%s'
ORDER BY %s DESC
Limit 0, %s; """ %(sportart, stufe, geschlecht, sportart, anzahl)
print "Ihre Abfrage lautet: ", sql
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
print row
cursor.close()
conn.close()
-
- User
- Beiträge: 6
- Registriert: Sonntag 27. Februar 2011, 00:14
Ich benutze xampplite 173. Den selben wie in der Schule
und was meinst du mit konfiguriert? Ich habe Mysql und Apache laufen...
und was meinst du mit konfiguriert? Ich habe Mysql und Apache laufen...
@skate4life: Ein ziemlich kapitaler Fehler ist das Einsetzen von Nutzereingaben in eine SQL-Anfrage. Das solltest Du nicht machen weil so der Benutzer beliebiges SQL ausführen lassen kann. Siehe auch: http://wiki.python.de/Parametrisierte%20SQL-Queries
Mit "konfiguriert" ist gemeint, wo und wie Du dem Server sagst welche Dateien er nicht einfach ausliefern, sondern sie als CGI-Anwendungen ausführen soll.
Mit "konfiguriert" ist gemeint, wo und wie Du dem Server sagst welche Dateien er nicht einfach ausliefern, sondern sie als CGI-Anwendungen ausführen soll.
-
- User
- Beiträge: 6
- Registriert: Sonntag 27. Februar 2011, 00:14
Danke das du mich drauf aufmerksam machst aber ich hab das so gemacht wie in der Schule und xampplite ist doch auch kein richtiger Webserver sondern ein virtueller. 

-
- User
- Beiträge: 6
- Registriert: Sonntag 27. Februar 2011, 00:14
Und mit der konfiguration kann ich im Moment ncihts anfangen.
Könnt ihr mir sagen wie mann xampplite konfigurieren müsste, um das zum laufen zu bringen?
Danke für eure Antworten!
Könnt ihr mir sagen wie mann xampplite konfigurieren müsste, um das zum laufen zu bringen?
Danke für eure Antworten!
- noisefloor
- User
- Beiträge: 4149
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
grundsätzlich musst du dem Server beibringen, dass er .cgi Dateien ausführen darf. Im Moment kennt dein Server keine .cgi Dateien und sendet diese.
Was beim Python-eigenen HTTP-Server + CGI unter Windows aber schon hilft ist, die Datei von 'meine_datei.cgi' auf 'meine_datei.py' umzubenennen. Keine Ahnung, ob dass bei xamplite auch schon reicht...
Gruß, noisefloor
grundsätzlich musst du dem Server beibringen, dass er .cgi Dateien ausführen darf. Im Moment kennt dein Server keine .cgi Dateien und sendet diese.
Was beim Python-eigenen HTTP-Server + CGI unter Windows aber schon hilft ist, die Datei von 'meine_datei.cgi' auf 'meine_datei.py' umzubenennen. Keine Ahnung, ob dass bei xamplite auch schon reicht...
Gruß, noisefloor
-
- User
- Beiträge: 6
- Registriert: Sonntag 27. Februar 2011, 00:14
also meine python datein im xampplite Ordner: ../cgi-bin haben alle die Endung *.py
aber trotzdem danke für die Idee...
aber trotzdem danke für die Idee...
