"native" Webentwicklung ohne Frameworks

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
vbd
User
Beiträge: 15
Registriert: Donnerstag 26. Februar 2004, 08:18

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
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

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/
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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" !!!

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
vbd
User
Beiträge: 15
Registriert: Donnerstag 26. Februar 2004, 08:18

@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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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 ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
vbd
User
Beiträge: 15
Registriert: Donnerstag 26. Februar 2004, 08:18

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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 :)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

Hier kommt CGI, glaube ich, recht gut rüber:
- http://www.python-forum.de/post-42514.html#42514
- http://www.python-forum.de/topic-6302.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
vbd
User
Beiträge: 15
Registriert: Donnerstag 26. Februar 2004, 08:18

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
vbd
User
Beiträge: 15
Registriert: Donnerstag 26. Februar 2004, 08:18

lighttpd läuft gerade - aber im Forum von lighttpd fand ich nix bzgl. wsgi...
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
vbd
User
Beiträge: 15
Registriert: Donnerstag 26. Februar 2004, 08:18

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
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
TDO
User
Beiträge: 25
Registriert: Montag 10. Juli 2006, 19:49
Kontaktdaten:

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten