wie kann ich eigentlich mit python eine website erstellen:-(

Probleme bei der Installation?
Gast

Dienstag 1. Februar 2005, 18:17

hallo,
ich würde bitte mal gerne etwas allgemein über python wissen:
ich habe python erfolgreich installiert, und würde jetzt gerne wissen, wie ich z.B. mit einem Scipt eine Website schreiben kann...
ich kann zwar mit den idleeditor schreiben, aber wie kann ich das dann mit meinem browser anzeigen... :(
wenn ich z.B. so anfange:

Code: Alles auswählen

####################
# die anfangszeile #
####################
#!usr/bin/python
print "<html>"
print "<head"
print "<title>denkt euch irgendwas</title>"
print "</head>"
print "<body>"
print "<h1>moin</h1>"
print "</body>"
print "</html>"
is jetzt vll nich ganz korrekt, aber wenn ich das so etwa schreibe; wen ich das z.B. dann als probe.py speichere, öffnet sich nur kurz der interpreter, aber sonst passiert nichts; wenn ich es als probe.html speichere, dann kommt immer alles doppelt, was ja auch verständlich ist...
kann mir das jemand erklähren... :cry:

pS.:bitte gebt mir keine verweise auf eglischsprachige seiten, da ich kein englisch kann...

ppS.:vll gab es dieses thema auch schonmal, aber mit der forensuche habe ich nix gefunden...


danke schonmal im vorraus :(
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Dienstag 1. Februar 2005, 19:26

Hallo Gast,

als erstes wär es hilfreich zu wissen unter welchem Betriebssystem du arbeitest bzw. die Scripte laufen sollen. Sollte es, Windows sein, bin ich versucht zu sagen, vergiss es.
Du brauchst erstmal einen cgi-fähigen Webserver auf deinem System und dann musst du den noch dafür configurieren auch Pythonscripte zu verarbeiten.
Es ist zwar bei Python auch schon ein CGIHTTPServer dabei, aber wie du siehst is das auch wieder alles englisch.

Wenn du wirklich interesse hast, in die Webprogrammierung einzusteigen würd ich dir Raten Linux auf deinem Rechner, oder einem alten ausgemusterten, zu installeiren, dort sind diese Sachen in der Regel einfacher einzurichten und du wirst generell über Computer mehr lernen als bisher.


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Mr. Snape
User
Beiträge: 15
Registriert: Dienstag 1. Februar 2005, 17:54

Dienstag 1. Februar 2005, 19:32

1. leider musst du mir praktisch dein
vergiss es
sagen, da ich nur windows habe, auf alt soweiso auf neu... :(
2. soweit ich weiß, is linux freeware, oder :shock:

danke...
Stellt euch mal folgendes vor:
Es gibt keinen Strom mehr; was würdet ihr tun?!?
Mr. Snape
User
Beiträge: 15
Registriert: Dienstag 1. Februar 2005, 17:54

Dienstag 1. Februar 2005, 19:41

ach ja:
wieso steht da eigentlich Gast als eröffner und poster in diesem forum?!?
des war schon ich :mrgreen:
Stellt euch mal folgendes vor:
Es gibt keinen Strom mehr; was würdet ihr tun?!?
XT@ngel
User
Beiträge: 256
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Dienstag 1. Februar 2005, 19:48

Was du als erstes brauchst ist ein webserver zum Testen. am besten Apache .
Wenn du Apache installiert hast, (geht unter Windows recht schnell) hast du ein Programm das nennt sich "apache Sevice Monitor" über dieses Programm kannst du Apache starten und stopen.

Python über das CGI zu nützen, ist wohl die am meisten, bei Provider anzutreffende art.
CGI Programme befinden sich meistens in einem dafür extra vorgesehenen Ordner namens cgi-bin. Den findest du in deinem Apache installations Verzeichnis.

Die Module cgitb, cgi, os, Cookie sind wohl Module die man häufig brauchen wird.

Mit dem Modul cgi kannst du Formular Daten die per GET oder POST gesendet wurden auslesen.
cgitb ermöglicht es dir, Fehler die unter umständen auftretten leichter zu ermitteln, in dem es bei einem nicht behandelte Fehler eine hübsche HTML-Seite erzeugt und dir anzeigt.
os stellt dir wichtige Umgebungsvariablen zur verfügung die im CGI Standard vorgegeben sind


Ein einfaches CGI/Python Programm sieht dann z.B so aus:

Code: Alles auswählen

#!d:/Program Files/Python23/python.exe -u
# -*- coding: iso-8859-1 -*-

print "Content-Type: text/html"    
print

import cgitb; cgitb.enable()  

print "<h1>Hallo welt</h1>"

Zur erklärung:
Die Zeile #!d:/ProgramFiles/Python24/python.exe -u
muss in jedem Script als erstes stehen und nicht so wie bei dir ein Kommentar.
Dein webserver erwartet diese Zeile als erstes in jedem cgi Script, damit er weiß an welches Programm er den Code weitergeben soll.

Mit
print "Content-Type: text/html"
print

wird ein gültiger HTTP-Header gesendet. Dieser sagt dem Browser welche Art von Inhalt er zu erwarten hat. Das zweite print sendet ein \n und ist auch erforderlich.

import cgitb; cgitb.enable()
Wie schon oben erwähnt hilft dieses Modul enorm bei der Fehlersuche.
mit cgitb.enable() wird es "eingeschaltet".
Ich schreibe diese Zeile immer gleich nachdem ich den Header gesendet habe.

Also mit dem vergiss es, überteibt Dookie aber schon a bisserl :wink:
Ich musste Anfang des jahres wegen meiner Schwester wieder auf Windows umsteigen. (Zuvor debian)
Natürlich ist es hart wenn man 3 Jahre lang Debian benutzt hat, aber Windows 2000 Prof. ist nun auch nicht so schlecht.
So Sachen wie chmod kann man da total knicken und apt-get war auch nich übel, aber wenn mein Schwester ihre Vorherrschaft beendet hat, kommt wieder Linux drauf. (Wenn ich bis dahin keinen Mac habe :) )

So das wars fürn Anfang, wenn du kein Englisch kannst, würde ich die empfehlen sachen die du nicht verstanden hast auf wikipedia nachzulesen.
Dort gibts die meisten Infos auch auf deutsch.



MfG
Andreas
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Dienstag 1. Februar 2005, 19:52

Hi Mr. Snape,

da warst Du wohl nicht eingeloggt beim ersten Post.

Es gibt auch Kostenlose Linuxdistributionen. Falls du "nur" einen Server auf einem alten Rechner laufen lassen willst, würd ich dir Debian empfehlen. Wenn du auch eine graphische Oberfläche haben willst Ubuntu
Ubuntu basiert auf Debian ist aber eher als Desktopsystem gedacht und leichter zu installieren.

Bei Debian reicht dann ein
apt-get install apache libapache-mod-python
und schon kannst Du in einem cgi-bin Verzeichnis Pythonscripte ablegen und die Ausgabe im Browser anschaun.


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Mr. Snape
User
Beiträge: 15
Registriert: Dienstag 1. Februar 2005, 17:54

Dienstag 1. Februar 2005, 20:38

also muss ich nur einen webserver auf meinem pc intsallieren...
Stellt euch mal folgendes vor:
Es gibt keinen Strom mehr; was würdet ihr tun?!?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 2. Februar 2005, 01:05

Anonymous hat geschrieben:wie ich z.B. mit einem Scipt eine Website schreiben kann...
Hallo Mr. Snape!

Probier doch mal Zope aus. Das ist (einfach ausgedrückt) ein Webserver-Programm, das man einfach installieren und mit Python programmieren kann. Deutschsprachige Hilfe und Anleitungen zu Zope bekommst du über die DZUG ( http://www.dzug.org ).

Zope liefert natürlich viel mehr als du am Anfang brauchen wirst. Lass dich aber nicht von Aussagen wie "Mit Kanonen auf Spatzen schießen" irritieren. Die wichtigsten und nützlichsten Funktionen von Zope sind eine einfache Vorlagensprache und die Verwendbarkeit von Python.

Deinen Beispielcode brauchst du nur noch um die Anweisung "print printed" zu erweitern und schon würde er unter Zope funktionieren.

So einfach könnte es sein:
1. Zope installieren (gleich als Windows-Service, damit es automatisch gestartet wird)
2. In einen Browser die Adresse " http://localhost:8080/manage " eingeben um in die Management-Oberfläche von Zope zu kommen.
3. In der Zope-Management-Oberfläche ein neues Python-Skript erstellen.
- auswählen von "Script (Python)" in der Kombinationsbox (rechts);
- eingeben eines Namens (ID) für das Skript;
- mit einem Klick auf "Add and Edit" bestätigen;
4. Im neuen Fenster, da wo "# Example code:" steht, kannst du dein Python-Skript eingeben. (Den existierenden Beispielcode musst du entfernen)
5. Speichern
6. Mit einem Klick auf die Karteikarte "Test" testen.

Das Tutorial, welches einen schnellen und aufschlussreichen Einstieg in Zope geben würde, ist leider auf Englisch. Vielleicht kannst du es mit jemandem durchlesen, der es dir übersetzen kann??

---
There is a built-in interactive Zope Tutorial which gets you started with some simple tasks using the Zope managment interface. To use the tutorial, go to any Folder and select Zope Tutorial from the add list and click the Add button. Provide a name for the tutorial and click Add to begin working with the tutorial.
---

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 2. Februar 2005, 07:46

Also für den Anfang, würde ich erstmal den Python eigenen CGIHTTPServer verwenden:

http://python.sandtner.org/viewtopic.php?p=14862#14862


Im Root-Verzeichnis der Webseite muß ein Verzeichniss "cgi-bin" existieren. Dorthin dein Testskript, als *.cgi speichern z.B.:

Code: Alles auswählen

print "Content-type: text/html\n\n"

import cgitb
cgitb.enable()

print "<html>"
print "<head"
print "<title>denkt euch irgendwas</title>"
print "</head>"
print "<body>"
print "<h1>moin</h1>"
print "</body>"
print "</html>"
Wichtig ist, das der erste print-Befehl print "Content-type: text/html\n\n" Lautet, damit der Browser weiß, dann jetzt HTML-Code kommt...

Das cgitb ist ganz nützlich, damit man Traceback-Fehler schön im Browser sehen kann ;)
Zuletzt geändert von jens am Donnerstag 3. Februar 2005, 10:06, insgesamt 1-mal geändert.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 2. Februar 2005, 14:13

gerold hat geschrieben:Probier doch mal Zope aus. Das ist (einfach ausgedrückt) ein Webserver-Programm, das man einfach installieren und mit Python programmieren kann. Deutschsprachige Hilfe und Anleitungen zu Zope bekommst du über die DZUG ( http://www.dzug.org ).
Waah! Hilfe! Ich würde mal sagen Zope ist ein Application Server, was aber benötigt wird ist ein HTTP Server. Zope ist totaler overkill und erforgert einiges mehr an Erfahrung als simple CGIs starten.
gerold hat geschrieben:Zope liefert natürlich viel mehr als du am Anfang brauchen wirst. Lass dich aber nicht von Aussagen wie "Mit Kanonen auf Spatzen schießen" irritieren. Die wichtigsten und nützlichsten Funktionen von Zope sind eine einfache Vorlagensprache und die Verwendbarkeit von Python.
Und die unglaubliche Komplikation, Unhandlichkeit, Unkonfigurierbarkeit (zumindest nicht besonders leicht, das sagt dir jemand der einen ircd konfiguriert hat).
gerold hat geschrieben:So einfach könnte es sein:
1. Zope installieren (gleich als Windows-Service, damit es automatisch gestartet wird)
Könnte.. was nicht heißt das es ist. So hast du unter Windows das Ding die ganze Zeit am laufen, ob due es gerade brauchst ist egal.
gerold hat geschrieben:2. In einen Browser die Adresse " http://localhost:8080/manage " eingeben um in die Management-Oberfläche von Zope zu kommen.
User eingeben, wundern warum es nicht geht, irgendwann Glück haben, sich wundern warum die Oberfläche so strage bis hin zu unbenutzbar ist.
gerold hat geschrieben:3. In der Zope-Management-Oberfläche ein neues Python-Skript erstellen.
- auswählen von "Script (Python)" in der Kombinationsbox (rechts);
- eingeben eines Namens (ID) für das Skript;
- mit einem Klick auf "Add and Edit" bestätigen;
4. Im neuen Fenster, da wo "# Example code:" steht, kannst du dein Python-Skript eingeben. (Den existierenden Beispielcode musst du entfernen)
5. Speichern
6. Mit einem Klick auf die Karteikarte "Test" testen.
Klar, das ist ja auch so einfach. Also bei mir reicht es, wenn ich das ins cgi-bin vom Apachen kopiere, URL aufrufe, fertig. Es gibt aber auch einfacherer Webserver für Windows wie Abyss (Freeware). Außerdem liebe ich es Python Programme in HTML Seiten zu schreiben, da stört mich das fehlende Highlighting genauso wenig wie das fehlene Automatische einrücken, die fehlenden Suchen und Ersetzenmöglichkeiten und so weiter.

Zope ist einfach nicht mein Fall. Es kann viel, aber Anfängern (und mir) würde ich es nicht empfehlen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Mr. Snape
User
Beiträge: 15
Registriert: Dienstag 1. Februar 2005, 17:54

Mittwoch 2. Februar 2005, 17:54

na da hab ich ja nchmal glück gehabt... :?
is zope jetzt freeware...
Stellt euch mal folgendes vor:
Es gibt keinen Strom mehr; was würdet ihr tun?!?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 2. Februar 2005, 18:05

Leonidas hat geschrieben: Waah! Hilfe! Ich würde mal sagen Zope ist ein Application Server, was aber benötigt wird ist ein HTTP Server. Zope ist totaler overkill und erforgert einiges mehr an Erfahrung als simple CGIs starten.
Hallo Leonidas!

Es tut mir leid, dass du so schlechte Erfahrungen mit Zope gemacht hast. Ja, es hat einige Probleme bei der Installation gegeben, aber Zope wird ständig weiterentwickelt. Auch die Installation wurde vereinfacht. Natürlich ist Zope ein Application Server, aber ich wollte es in einfachen Worten sagen.

Hier ist ein Link, der die Installation von Zope genauer erklärt. Es ist wirklich so einfach. Sorry Mr. Snape, aber dieser Link führt zu einer englischsprachigen Internetseite. http://www.plope.com/Books/2_7Edition/I ... ngZope.stx

Zope hat den Vorteil, dass es (gerade unter Windows) einfach zu installieren ist, sofort verwendet werden kann und wenn man es später braucht, die zusätzlichen Funktionen schon zur Verfügung stellt.

Was bringt es mir, wenn ich jetzt recht schnell mit einem 0815-HTTP-Server ein paar Python-Skripte zum Laufen bekomme, wenn ich später ohne vernünftige Benutzer-/Rechteverwaltung da stehe.

Warum nicht gleich mit einem potenten System arbeiten? Man muss als Anfänger ja gar nicht wissen, dass man unter Zope Änderungen an Dateien wieder rückgängig machen kann. Wichtig ist nur, dass man es bei Bedarf einfach tun kann. Man muss ja auch nicht Plone als Content Management System verwenden. Es genügt zu wissen, dass man es bei Bedarf einfach tun kann. Was ich damit sagen möche: Man kann mit Zope einfache Dinge auch einfach erledigen. Man muss nicht sofort ein Zope-Profi sein um Zope nutzen zu können.

Obwohl -- die Lösung von jens mit "CGIHTTPServer" hat auch seinen Reiz. ;-) Wenn von Anfang an klar ist, dass keine Rechteverwaltung benötigt wird, muss man nicht einmal zusätzliche Software installieren.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 2. Februar 2005, 18:31

Mr. Snape hat geschrieben:na da hab ich ja nchmal glück gehabt... :?
is zope jetzt freeware...
Besser noch, es ist Freie Software nach ZPL, das eine OSI Lizenz ist.
gerold hat geschrieben:Es tut mir leid, dass du so schlechte Erfahrungen mit Zope gemacht hast. Ja, es hat einige Probleme bei der Installation gegeben, aber Zope wird ständig weiterentwickelt. Auch die Installation wurde vereinfacht. Natürlich ist Zope ein Application Server, aber ich wollte es in einfachen Worten sagen.
Ich glaube gerne, dass Zope sich weiterentwickelt hat, schließlich ist ZX3 seitdem fertig geworden.
gerold hat geschrieben:Zope hat den Vorteil, dass es (gerade unter Windows) einfach zu installieren ist, sofort verwendet werden kann und wenn man es später braucht, die zusätzlichen Funktionen schon zur Verfügung stellt.
Klar, die zusätzlichen Funktionen sind nett. Aber für den produktiven Einsatz (Server) würde ich Windows nicht einsetzen, auch nicht mit Zope.
gerold hat geschrieben:Was bringt es mir, wenn ich jetzt recht schnell mit einem 0815-HTTP-Server ein paar Python-Skripte zum Laufen bekomme, wenn ich später ohne vernünftige Benutzer-/Rechteverwaltung da stehe.
Nun, dazu gibt es sicher auch einzelne Module, aber es gibt auch Lösungen zwischen simplen CGIs und Zope. Da wäre Webware, Skunkweb, Quixote, aber auch Spyce und viele weitere, die auch viele funktionen bieten.
gerold hat geschrieben:Warum nicht gleich mit einem potenten System arbeiten? Man muss als Anfänger ja gar nicht wissen, dass man unter Zope Änderungen an Dateien wieder rückgängig machen kann. Wichtig ist nur, dass man es bei Bedarf einfach tun kann. Man muss ja auch nicht Plone als Content Management System verwenden. Es genügt zu wissen, dass man es bei Bedarf einfach tun kann. Was ich damit sagen möche: Man kann mit Zope einfache Dinge auch einfach erledigen. Man muss nicht sofort ein Zope-Profi sein um Zope nutzen zu können.
Für Aufgaben wie Dateien wiederherstellen nutze ich lieber spezialisierte Tools, wie Subversion, svk oder Monotone (auch lokal, so verwalte ich meine Snippets mit monotone).

Aber gut, ich würde vorschlagen, Mr. Snape versucht Zope und sagt uns selbst wie er es findet. :idea:
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 2. Februar 2005, 18:45

Leonidas hat geschrieben:... aber es gibt auch Lösungen zwischen simplen CGIs und Zope. Da wäre Webware, Skunkweb, Quixote, aber auch Spyce und viele weitere, die auch viele funktionen bieten.
Hi Leonidas!

Da hast du natürlich recht. Es gibt nicht nur schwarz und weiß.
Ich mag Zope. 8) 8)

... versucht nicht jeder, den anderen sein Lieblingstool schmackhaft zu machen?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 2. Februar 2005, 19:04

gerold hat geschrieben:... versucht nicht jeder, den anderen sein Lieblingstool schmackhaft zu machen?
Doch, durchaus. Das ist ja auch gut so. Sonst könne man nie auf irgendwessen Erfahrung bauen und müsste das Rad immer neu erfinden. 8)

Das ist ja das tolle, es gibt eine Menge freier Software für das gleiche Ziel, so habe ich mal eine Liste von Applikationsservern und Server Page Implementationen in Python zusammengebaut.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten