Seite 1 von 2
"native" Webentwicklung ohne Frameworks
Verfasst: Dienstag 7. November 2006, 15:16
von vbd
Hi,
was gibt es an guten Tutorials, podcasts, Büchern etc. die man auch Einsteigern in die Materie Webentwicklung mit Python auf Basis CGI und FastCGI empfehlen kann? (evtl. auch noch mod_python)
Frameworks sollten erstmal außen vor bleiben - Denke ich.
Gruss
Volker
PS: Gibt es ein sog. TABU-Dokument[1] (wie es z.B. für LaTeX existiert) für Python
[1]
ftp://tug.ctan.org/pub/tex-archive/info ... tabuen.pdf
Verfasst: Dienstag 7. November 2006, 15:30
von EnTeQuAk
Im allgemeinen zu Empfehlen: " Obekt Orientierte Programmierung mit Python"
Da gibt es auch eine kleine Einführung in die Welt der CGI Programierung mit Python.
Allerdings ist das eines der Bücher, die nach einer Weile langweilig werden, weswegen ich direkt nie bis zu diesem Kapitel vorgedrungen bin. Aber es ist ganz informativ.
Ansonsten interessieren mich auch andere Dokus

Ma schaun.
MfG EnTeQuAk
EDIT:
gerade unter Links und Tutorials gefunden:
http://webpython.codepoint.net/
Verfasst: Dienstag 7. November 2006, 15:56
von Y0Gi
Je nachdem, was du für eine Hosting-Umgebung zur Verfügung hast, solltest du dich direkt mit WSGI anstelle von CGI beschäftigen - auch wenn du bei letzterem sehr viel über HTTP und Webserver lernst. Ohne Framework kommst du am ehesten bei CGI aus, aber auch bei WSGI geht das auch.
Re: "native" Webentwicklung ohne Frameworks
Verfasst: Dienstag 7. November 2006, 15:58
von jens
Da gibt es IMHO nicht so viel online
vbd hat geschrieben:Frameworks sollten erstmal außen vor bleiben - Denke ich.
Ich würde dir allerdings ganz dringend raten zumindest
colubrid zu nehmen! Ansonsten würde ich WSGI pur machen, kein CGI oder gar fastCGI direkt nutzten!
Allgemeines zu WSGI:
[wiki]WSGI[/wiki]
Fast ein colubrid Tutorial:
[wiki]Colubrid/Hello World[/wiki]
Weitere Info's zu Colubrid:
[wiki]Tags/Colubrid[/wiki]
Suche hier im Forum mal nach "WSGI" !!!
Verfasst: Dienstag 7. November 2006, 16:06
von vbd
@Y0Gi
Hosting ist beeinflußbar, da es sich um eine Intranet-Umgebung
handelt wobei das Alt-System Apache+Tomcat (JAVA) durch
Apache+Python ersetzt wird.
Tipps hierzu werden gerne aufgenommen
@jens
WSGI habe ich bis vor 5 Minuten noch nicht gehört... sehe schon habe
hier noch einiges an Nachholbedarf.
Auch hierzu nehme ich gerne jeden Tipp entgegen
Gruß aus Nürnberg
Volker
Verfasst: Dienstag 7. November 2006, 16:09
von jens
Gerade weil du vom Server fexibel sein kannst/willst solltest du aus WSGI setzten... Lies dir am besten mal die Wiki Seiten durch und wie gesagt, such mal im Forum danach

Verfasst: Dienstag 7. November 2006, 16:44
von vbd
Hallo,
also WSGI verwirrt mich, macht mich aber auch neugierig.
eben gelesen:
[wiki]Python im Web[/wiki]
[wiki]WSGI[/wiki]
gerade ausgedruckt:
http://www.xml.com/lpt/a/1674
http://www.xml.com/lpt/a/1675
auf der Platte: Apache 2.0.59
für den Download vorgemerkt: Python 2.5
Was brauche ich jetzt noch um auf einem Windows XP SP2
Arbeitsplatzrechner eine lauffähige WSGI-Umgebung zum Laufen zu
kriegen?
ich tippe mal auf
mod_fcgid von
http://fastcgi.coremail.cn/ - gibts da auch
Windows-Binaries?
colubrid von
http://wsgiarea.pocoo.org/colubrid/ - gibts die Version
auch für Python 2.5?
Und dann wäre noch ne Installationsanleitung nett

Gibt's dazu Hinweise was man unbedingt beachten muß/sollte?
Gruß aus Nürnberg
Volker
Verfasst: Dienstag 7. November 2006, 16:54
von jens
Nur so am Rande... Auf Python 2.5 würde ich momentan noch nicht setzten

Schau mal hier:
http://www.python-forum.de/topic-7741.html
Verfasst: Dienstag 7. November 2006, 18:14
von Y0Gi
Apache und WSGI hört sich bestens an! Von mod_python habe ich noch nie viel gehalten und scheinbar "braucht" man es heutzutage nicht mehr. mod_fcgi klingt sehr gut, benutze ich momentan auch online.
Alternativ könnte man auch, etwa mit PasteScript und PasteDeploy, einen Python-Webserver für die dynamischen verwenden. Zum lokalen Testen und Entwickeln kann der auch die statischen Dateien liefern, im Produktiveinsatz sollte das der Apache übernehmen. Wenn du mod_fcgi unter Windows nicht in den Apache bekommst, kannst du auch so ohne umständliches Setup lokal arbeiten und dann nur auf dem eigentlichen (hoffentlich Unix-basierten) Server den Apache nutzen (und mod_fcgi über die entsprechende Paketverwaltung installieren). Den Stand-alone-Server dann auf Apache umzustellen ist eine Sache von wenigen Zeilen konfiguration, etwa über ScriptAlias oder mod_rewrite.
Lighttpd könnte eine Alternative zu Apache sein, aber die Menge an Literatur, Tutorials, Hilfestellungen und bereits beantworteten Fragen ist bei letzterem deutlich größer.
In jedem Fall solltest du aber ein Auge auf
Paste werfen; eine Art Meta-Framework für WSGI-Anwendungen, das sich um low-level-Dinge kümmert und eine wunderbare Toolbox darstellt, um eigene Anwendungen zu entwickeln, debuggen, testen und mehr. Der Einstieg ist meiner Erfahrung nach nicht ganz trivial, aber du kannst hier gerne fragen

Re: "native" Webentwicklung ohne Frameworks
Verfasst: Dienstag 7. November 2006, 19:21
von gerold
vbd hat geschrieben:die Materie Webentwicklung
Hi vbd!
Vielleicht bringt dir dieser Link einen Überblick:
http://www.python-forum.de/topic-7063.html
mfg
Gerold

Verfasst: Dienstag 7. November 2006, 19:28
von gerold
Verfasst: Mittwoch 8. November 2006, 11:47
von vbd
Mahlzeit
Kurzer Lagebericht
- Apache 2.0.59 installiert
- Python 2.4.1 installiert (lag bereits auf der Festplatte rum und
wegen der Bedenken zu 2.5). Oder sollte ich auf 2.4.4 gehen?
Mit dem Skript unter
http://www.python-forum.de/topic-6856.html
herumgebastelt in cgi-bin-Verzeichnis gepackt -> läuft.
Soweit so gut. Werde mich jetzt mal an
http://fastcgi.coremail.cn/
und
http://wsgiarea.pocoo.org/colubrid/ versuchen zu vergreifen.
@jens: Danke für den Hinweis zu Python 2.5
@Y0Gi: Ist Paste vergleichbar mit colubrid? (Unterschiede/Vorteile?)
Produktivumgebung ist leider ein Windows 2000-Server bzw. Windows
2003-Server - geplant mit Apache.
Lighttpd gibt es für Windows wie ich eben sehe. Lade gerade 1.4.13
runter mal sehen. Habe bislang nur gute Erfahrungen mit dem Apachen
gemacht (seit ca. 1996) und würde gerne dabei bleiben.
Grüsse aus Nürnberg
Volker
Verfasst: Mittwoch 8. November 2006, 11:59
von vbd
lighttpd läuft gerade - aber im Forum von lighttpd fand ich nix bzgl. wsgi...
Verfasst: Mittwoch 8. November 2006, 13:00
von Y0Gi
vbd hat geschrieben:Oder sollte ich auf 2.4.4 gehen?
Ja. Und unter Windows isses ja schnell heruntergeladen.
BTW: Hast du mal von setuptools/easy_install gehört? Darüber kannst du wunderbar einfach und komfortabel die meisten Python-Pakete einspielen.
vbd hat geschrieben:lighttpd läuft gerade - aber im Forum von lighttpd fand ich nix bzgl. wsgi...
Letztlich musst du nur FastCGI zum Laufen bringen und dann über das flup-Python-Paket FastCGI ansprechen. Entsprechend funktioniert das mit dem Apachen; ein Unterschied besteht nur in der Serverkonfiguration, während die/deine Anwendung gleich bleibt.
vbd hat geschrieben:Lighttpd gibt es für Windows wie ich eben sehe. Lade gerade 1.4.13 runter mal sehen. Habe bislang nur gute Erfahrungen mit dem Apachen gemacht (seit ca. 1996) und würde gerne dabei bleiben.
Dann mach das!
vbd hat geschrieben:Produktivumgebung ist leider ein Windows 2000-Server bzw. Windows 2003-Server - geplant mit Apache.
Nicht schön, aber machbar ist es definitiv
vbd hat geschrieben:@Y0Gi: Ist Paste vergleichbar mit colubrid? (Unterschiede/Vorteile?)
Hm, gute Frage. Soweit ich weiß sind beide Pakete Abstraktionen der WSGI-Schnittstelle. Colubrid ist wohl etwas kompakter, Paste kommt dafür u.a. mit sehr interessanten Middlewares (z.B. Live-Debugging im Browser) daher. Paste bringt neben einem eigenen Webserver auch zwei inzwischen abgespaltene Pakete - PasteDeploy und PasteScript - mit, um u.a. das Deployment und die Entwicklung von Frameworks zu vereinfachen und zu vereinheitlichen.
Ich persönlich fahre mit Paste sehr gut. Bei Colubrid bin ich etwas über die verschiedenen Application-Typen gestolpert, die IMHO zu sehr die Aufgaben eines Frameworks vorwegnehmen. Dies unter Vorbehalt, hier gibt es ja so einige Colubrid-Entwickler und -Anwender, die das genauer beleuchten können sollten.
Verfasst: Mittwoch 8. November 2006, 15:04
von vbd
Hi,
nächste Frage - eigentlich eher eine Apache-Frage aber vielleicht
weiß einer von euch ob es korrekt ist, funktionieren tut es
zumindest.
Das Binärpaket von mod_fcgid für Windows heruntergeladen
entsprechend Readme First.txt installiert und folgendermaßen in der
httpd.conf des Apache verdrahtet.
Code: Alles auswählen
LoadModule fcgid_module modules/mod_fcgid.so
<Location "C:/Programme/Apache Group/Apache2/fcgi-bin">
SetHandler fcgid-script
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
FCGIWrapper "c:/python24/python.exe" .py
</Location>
Das Skript im fcgi-bin wird ausgeführt und funktioniert korrekt.
Wie kann ich jetzt einen Unterschied zwischen dem CGI und der
FCGI-Variante feststellen?
Grüße aus Nürnberg
Volker
Verfasst: Mittwoch 8. November 2006, 16:29
von Y0Gi
Ich kann dir nicht vollständig folgen, aber eine Config kann so aussehen:
Code: Alles auswählen
Options +ExecCGI
AddHandler cgi-script .cgi
AddHandler fcgid-script .fcgi
So kannst du per RewriteRule oder ScriptAlias u.ä. auf eine .cgi- oder .fcgi-Datei verweisen, die dann entsprechend via CGI oder FastCGI ausgeführt wird. Die Datei selbst ist ein kleines Python-Script und hat natürlich als erste Zeile die Shebang-Line (#!/usr/bin/env python oder äquivalent).
Alternativ kannst du auf per AddHandler die Dateiendung .py setzen, das Script entsprechend umbenennen und dann jeweils eine der AddHandler-Zeilen auskommentieren, um zwischen CGI und FCGI zu wechseln.
Hilft dir das weiter?
Verfasst: Mittwoch 8. November 2006, 16:35
von jens
Y0Gi hat geschrieben:Colubrid ist wohl etwas kompakter, Paste kommt dafür u.a. mit sehr interessanten Middlewares (z.B. Live-Debugging im Browser) daher.
Das bietet colubrid auch

Ist super zum Entwickeln... Macht das ganze sogar viel Informative als der normale Python-Traceback auf der Konsole
Y0Gi hat geschrieben:Bei Colubrid bin ich etwas über die verschiedenen Application-Typen gestolpert...
Naja, die kann man nutzten, muß man aber nicht... IMHO sind die sehr praktisch gerade für kleine Sachen...
btw. FastCGI nützt zum entwickeln überhaupt nix! Das ist nur was für "fertige" WebApps, die produktiv laufen sollen.
Zum Entwickeln geht's am besten mit colubrids Entwicklungsserver (genau wegen dem Live-Tracebacks) oder aber Apache mit normalem CGI...
Verfasst: Mittwoch 8. November 2006, 16:51
von Y0Gi
Letzteres habe ich auch bei meinem kürzlichen Umstieg auf FastCGI festgestellt. Daher auch der CGI-Handler in meinem Config-Beispiel, um Online testen und schnell ändern zu können.
Verfasst: Mittwoch 15. November 2006, 09:46
von TDO
hmmm ... also ich interessiere mich ja grundsaetzlich auch fuer webentwicklung mit python ... das ist auch eigentlich der grund weshalb ich jetzt angefangen habe python zu lernen, weil mir php einfach nen bissle auffe eier ging ...
mir stellt sich da nur die frage ... ich meine die ganzen kleinen "Frameworks" die hier empfohlen werden um webapps mit python zu erstellen... wie Paste und Colubrid(oder so)... ich bin da immer nen bissle skeptisch ... ich weiss jetzt ned genau wie es bei den projekten aussieht ... aber ich hab bei so kleineren sachen immer angst das die entwicklung irgendwann eingestellt wird weil der entwickler keine zeit mehr hat oder so ... und dann war alles mehr oder minder fuer die katz ... vielleicht koennt ihr mich ja mal vom gegenteil ueberzeugen
gruessle TDO
Verfasst: Mittwoch 15. November 2006, 11:03
von jens
Naja, generell hast du natürlich die Gefahr, wenn du kleine und vor allem neue Sachen nutzt... Aber zu colubrid, jinja und pygments: All diese Module werden in pocoo verwendet:
http://trac.pocoo.org/#PocooSubprojects
Und ich denke nicht das pocoo nach hinten losgehen wird...
Das schöne an OpenSource ist ja auch, das keine Firma Pleite gehen kann und die Sourcen dann weg sind...

Somit wird sich IMHO immer irgendwer finden, der ein "totes" Projekt wieder zum leben erweckt, wenn es sich denn lohnt...