Verständlichkeits problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

Hallo zusammen ich haben folgenden code geschreiben

Code: Alles auswählen

#!/usr/bin/env python
#-*- coding:utf-8 -*-

def print_header():
	print """Content-Type: text/html

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>test2</title>

</head>

<body>
 <h1>test</h1>"""

################################################################################

def print_footer():
	print "</body>\n</html>"
	
	
if __name__ == '__main__':

	print_header()
	print_footer()


und beim ausführen bekomme ich folgendes raus
hierbei handelt es sich jetzt nicht um ein Python Code
sondern das was beim ausführen im Browser auftaucht

Code: Alles auswählen

#!/usr/bin/env python #-*- coding:utf-8 -*- def print_header(): print """Content-Type: text/html
Lager
""" ################################################################################ def print_footer(): print "\n" if __name__ == '__main__': print_header() print_footer() 
ich weiss nicht woran es jetzt kliegt kann mir einer bitte aushelfen

Mfg
zahi
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Was bedeutet "ausführen im Browser" genau? Bitte gib dazu mal mehr Details.

Generell gilt: Es gibt Template Engines; diese machen das Vermischen von Python und HTML unnötig. (z.B. http://jinja.pocoo.org/2/documentation/)
lunar

CGI als direkte Schnittstelle ist auch schon ein bisschen tot, moderne Webanwendungen nutzen WSGI, am besten in Verbindung mit einer abstrahierenden Bibliothek ala Werkzeug, oder gleich einem kompletten Rahmenwerk.
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

also ich rufe diese seite unterverwendung eines post-serves
auf und dort kommt halt dieses ergebniss raus
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

zahi hat geschrieben:also ich rufe diese seite unterverwendung eines post-serves
auf und dort kommt halt dieses ergebniss raus
Was ist ein post-server? Meinst Du einen HTTP-Server?

Was ist denn Ziel dieser ganzen Aktion?

Lies Dir doch mal das durch:
http://wiki.python-forum.de/Python%20un ... ntwicklung

Dann kannst Du sicherlich mehr dazu sagen oder aber erkennst ggf., dass Dein Weg suboptimal ist.
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

das ist der "Server" den ich meine


BaseHTTPServer

und die Seite rufe ich halt so auf

http://localhost:8080/index.py
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Och je, dein Browser interpretiert die Pythondatei als HTML-Dokument und da kommt dann murks raus. Lies dir mal o.g. Link durch. :-)
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

oje ich hab grad den Link mir angesehen und weiss nicht weiter wie kann man den das verhindern?
ich verwende ubuntu ich weiss nicht ob das einen einfluss darauf hat
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Arbeite einfach mal das Bottle-Tutorial durch, ich denke, da bekommst du einen recht guten Überblick, wie Python-Webentwicklung funktioniert.
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

so das toutorial durchgemacht und eine frage offen

'Content-type','text/html' hier erwartet er ja eine html datei
wie kann ich dem sagen das es eine python datei ist ?
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Dem Browser? 'application/x-python' wenn ich das richtig im Kopf habe.

Edit: Nein, der Browser erwartet bei 'Content-type: text/html' keine HTML-*Datei*, sondern HTML-Inhalt. Für den Browser ist es vollkommen wurscht, ob der Inhalt, den er bekommt, aus einer Datei kommt oder von wo auch immer.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

@zohi: Wenn du einen Python-Datei serverseitig auf dem Webserver ausführen willst, dann muss es CGI (old-school) oder WSGI sein (modern).

Heißt: das muss du dem Server auch sagen, spricht in die Config eintragen, dass das so sein soll.

WAS hast du eigentlich vor? Das geht aus den Posting nicht wirklich vor. Also was du am Ende erreichen willst.

Gruß, noisefloor
Antworten