Python und Webprogrammierung [neuling]

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

Sonntag 5. Februar 2006, 01:25

Und wenn du meinst, dass du mal schnell ein Cookie Handling mit CGI machst endet das nunmal in einem etwas längeren Skript.
Das ändert sich mit WSGI? Cookies und Sessions sind da auch nicht dabei.
Ja und?
Du hattest CGI unter anderem mit dem Argument abgelehnt, dass man dort Cookies selbst verwalten muss und stattdessen WSGI vorgeschlagen. Nur das man dort Cookies auch selbst verwalten muss.
Zu PSP kann ich nix sagen, aber bei Spyce bekommst Du Probleme weil ``[[`` und ``]]`` für HTML-Editoren keine besondere Bedeutung haben. Wenn das irgendwo im Text steht und nicht zufällig in `<pre>` Tags, kann einem ein WYSIWYG-Editor Probleme bereiten.
Und das hat natürlich mit der Einrückung zu tun :roll:
Ja. Ein HTML-Editor darf Text, der zum Beispiel nur in <p> Tags steht, als "Fliesstext" umformatieren. Python-Quelltext überlebt das nicht. Wegen der signifikanten Einrückung.
Fangen wir bei Cheetah an: wo bitteschön siehst Du Python in den Templates? Das ist eine eigene, zugegebenermassen sehr Python-ähnliche Sprache, die erst in Python übersetzt wird. Unter anderem gibt es für die ganzen "Blöcke" wie ``#if``, ``#for`` usw. die zugehörigen ``#end`` Schlüsselwörter eben genau um das Problem zu umgehen, dass man in einem Template nicht auf signifikante Einrückung angewiesen sein möchte.
Ja logisch. Aber es ist doch scheiß egal ob du für deine Syntax jetzt #if und #end hast, oder ob du <?php if () { ?> und <?php } ?> hast.
Natürlich ist das egal. Eben um das zu ermöglichen benutzt Cheetah kein Python sondern eine eigene Sprache.
Aber ich hab Zugriff auf die komplette Sprache von Pyhton, was übrigens keine "python ähnliche Sprache", sondern Python ist.
Das was man in Cheeta Templates einbettet ist kein Python. Versuch mal den Python-Interpreter ``#if $foo`` ausführen zu lassen. Und ``#repeat`` oder ``#unless`` gibt's in Python auch nicht als Schlüsselworte, nicht mal ohne das führende '#'.
Aber wenn du willst schreib dir eine Sprache, die Einrückungen haben will :roll:
Häh? Will ich nicht.
Bei `kid` kann man ganz gut Python Quelltext unterbringen, da ist die Ausgabe von "Text" aber viel restriktiver als bei PHP. Man kann nicht einfach so Text ausgeben sondern nur gültiges XML einfügen. IMHO für eine XML-Template Sprache eine sehr nützliche "Einschränkung".
PHP ist KEINE XML Template Sprache.
Hat das jemand behauptet?
PHP ist nichtmal eine brauchbare Template Engine. Smarty gibts ja nicht ohne Grund.
Sehe ich auch so.
Jinja, hier ist genauso wie bei django templates, SimpleTAL, HTMLTemplate, pyTempl, Spytee und Nevow eine eigene Syntax mit eigenen davorgeschalteten Interpreter bzw einer Klasse, die in Python Code umwandelt.
Hm, also kann man bei den Template Mechanismen in dem Absatz keinen Python Quelltext wie in PHP einfügen. Die unterstützen also mein Ausgangsargument. Danke.
Ganz ehrlich hab ich die Schnauze voll mit dir zu Diskuttieren. Ich will dir nur sagen, dass wirklich durchdachte Template Engines _Keinen_ Zugriff auf Sprachelemente bieten. Alleine schon wegen der Sicherheit.
Da bin ich ganz Deiner Meinung.
Da es guter Stil ist Logik und Präsentation zu trennen empfinde ich diese Einschränkung aber eher als Vorteil.
Da stimme ich dir zu, aber nur in der Hinsicht, dass die Trenung gut ist. denn die Einschränkung sehe ich nicht.
Schön für Dich. Leute die von PHP kommen und Smarty schon so komisch umständlich empfanden, sehen das aber als Einschränkung.
Das sind dann die Leute, die das Konzept von Code/Template Trennung nicht verstanden haben. :roll:
Ebenfalls ganz Deiner Meinung.
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Sonntag 5. Februar 2006, 03:37

XT@ngel hat geschrieben:
Ganz ehrlich hab ich die Schnauze voll mit dir zu Diskuttieren
:roll:
Soviel zum Thema; - Vergleich Äpfel mit Birnen
Wenn man keinen eigenen Server hat ist man mit Python beim Theme Webentwicklung recht eingeschränkt und daran ändert auch WSGI nichts.

Da kann es noch soviel an Frameworks und Application Server geben am Ende muss ich mein Script doch als cgi beim billig provider laufen lassen ;)

PSP, Django Turbogears, python-cgi, mod_python, Zope - und ich wollt nur ein Gästebuch
:mrgreen:

MfG
Andreas
Und ich hab auch jemanden gefunden, der meiner Meinung ist. :-)
Ich liebe das Internet! :lol:
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
tabellar
User
Beiträge: 186
Registriert: Mittwoch 4. September 2002, 15:28

Sonntag 5. Februar 2006, 11:47

Leute, Leute, lasst doch die Kirche im Dorf :D . Jeder bringt hier sein Wissen bestmöglich mit ein. Diskutieren und Enthusiasmus sind ja schön und gut, aber
der rote Faden und der entsprechende Ton sollten nicht verloren gehen ... ;-)

Tabellar
synopia
User
Beiträge: 17
Registriert: Mittwoch 1. März 2006, 19:47

Mittwoch 1. März 2006, 20:02

Auch auf die Gefahr hin, dass ich mir ein paar Feinde hier im Python-Forum mache, schreib ich jetzt mal hier Meinung hin :mrgreen:
banthrass hat geschrieben:...Naja da denk ich mir "warum PHP wenn ich python was neues lernen kann, was den selben effekt hat...
Ok, also ist es dir erstmal grundsätzlich egal, welche Skriptsprache du einsetzten willst, nur nicht PHP (was ich im ürbigen vollkommen verstehen kann :-D)
banthrass hat geschrieben:...Ich hab bisher ein grundlegendes Verständnissproblem bei python. Kann mir jemand sagen wie ich python in HTML einbinden kann? Wie könnte ich z.B. einen Adminpanel für meine seite realisieren? Gibt es eine ähnliche inculde funktion wie in PHP? Kann ich python ganz nomal in einem texteditor einfügen, die page hochladen und es läuft oder ist das ein spezielles Format gefragt? Wenn ja wie binde ich dieses Format oder diese Datein ein? Es wäre nett wenn mir jemand die grundlegen dinge zur Python Webprogrammierung mal erläutern könnte. also wie genau baue ich einfach eine HTML seite wo z.B. "Hallo Welt" drin steht. Wie und Wo muss ich speichern, welche Einstellungen sind beim Apache (xampp) nötig. Muss ich was bei dem arbeiten von Linux und Win etwas beachten (zuhause Linux auf der arbeit win2k)?...


Wenn mich jemand genau das fragen würde, würde ich ihm immer:

http://www.rubyonrails.com

empfehlen. Ja Rails ist nicht Python, sondern Ruby, aber: Mit Ruby und Rails erhältst du alles, was du zum Entwickeln von Webanwendungen brauchst. Es ist einfach zu installieren (für Win gibts ein One-Click-Installer, für Linux entsprechende Packete (lang lebe apt!)) und es ist alles dabei was man braucht (ORM für Datenbank, simple Templatesprache, Klare Trennung zwischen Modell und View, Unit-Tests, ...) und insgesamt verdammt einfach zu bedienen und, das allerwichtigste, es macht Spass damit zu entwickeln. Das ist mir nach einem grösserem J2EE Projekt sowas von klar geworden... ich hab mich nach Alternativen umgeschaut, und bin auch zuerst auf Python gestoßen. Aber bei Python wars leider ähnlich wie bei J2EE. 1000 halbe Projekte, einige sehr wirre Quasistandards und insgesamt einfach unglaublich unübersichtlich... In meiner Verzweiflung hab ich weitergesucht und bin kurz darauf auf RoR gestoßen und muss sagen, ich bin wirklich beeindruckt davon.

Also an alle, die demnächst ein neues Webprojekt anfangen und denen es um effektive Entwicklung und Umsetztung geht, unbedingt mal über den Tellerrand schauen! Es lohnt sich.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 1. März 2006, 20:05

Dabei sollte man allerdings nicht außer acht lassen, das Ruby noch seltener als Python bei normalen Web-Space anzutreffen ist. s.: http://wiki.python.de/Python_Webspace

Wie läuft RoR denn? Mit CGI?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
synopia
User
Beiträge: 17
Registriert: Mittwoch 1. März 2006, 19:47

Mittwoch 1. März 2006, 20:15

jens hat geschrieben:Dabei sollte man allerdings nicht außer acht lassen, das Ruby noch seltener als Python bei normalen Web-Space anzutreffen ist. s.: http://wiki.python.de/Python_Webspace

Wie läuft RoR denn? Mit CGI?
Absolut korrekt. Mit RoR wird man an einem eignem Server (VServer, etc) (noch) nicht vorbeikommen.

Es gibt mindestens 3 Möglichkeiten:
1. Reiner Rubywebserver (Webbricks oder so), Vorteil: Easy to use (nix konfigurieren, einfach starten), Nachteil: Langsam --> Fahrradantrieb ;-)
2. Apache mit CGI: Nachteil: Ottomotor
3. Apache mit FCGI: Raketenantrieb
4. Lighttp mit FCGI: Warpantrieb

PS: Buchempfehlung darf nicht fehlen: "Agile Webentwicklung mit Rails", Hanser Verlag
PPS: Hoster mit RoR auf FCGI
--
http://www.weltenwerk.net
^^
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 2. März 2006, 06:07

synopia hat geschrieben:Es gibt mindestens 3 Möglichkeiten:
1. Reiner Rubywebserver (Webbricks oder so), Vorteil: Easy to use (nix konfigurieren, einfach starten), Nachteil: Langsam --> Fahrradantrieb ;-)
2. Apache mit CGI: Nachteil: Ottomotor
3. Apache mit FCGI: Raketenantrieb
4. Lighttp mit FCGI: Warpantrieb
Wo ist da jetzt der Unterschied zu django und turbogears? Hey und sogar für Colubrid trifft das zu.
Und ich glaube, dass TurboGears jetzt schon mächtiger als Ruby ist. :wink:
TUFKAB – the user formerly known as blackbird
synopia
User
Beiträge: 17
Registriert: Mittwoch 1. März 2006, 19:47

Donnerstag 2. März 2006, 08:01

Hey, ich kannte bisher weder turbogears noch django. Beide gehen den RoR-Way, was ich nur gutheißen kann :-)

Natürlich gibt es keinen Unterschied zwischen der Konfiguration von Turbogears und RoR für den Webserver, beides läuft erst richtig rund auf einem FCGI (und schnell unter lighttp), nur hatte mein Vorposter eben gefragt...

Allerdings halte ich es für ein Gerücht, dass Turbogears mächtiger ist als RoR (Ruby hat im Übrigen nix mit Rails zu tun...). Wenn ich mir die Doku ansehe, ist vieles noch nicht dokumentiert und nur für die Alphaversion verfügbar. RoR ist schon eine ganze Weile "Stable" und es gibt inzwischen ein paar sehr gute Bücher (Bisher war ich der festen Überzeugung, dass man Bücher nicht braucht, da man alles aktueller im Web nachlesen kann, nun hab ich mir aber das oben genannte zugelegt und muss sagen, es geht viel.. vieeeel schneller sich mit einem (guten) Buch in ein solches Framework einzuarbeiten).

Im Übrigen wollte ich hier niemandem zu nahe treten, ich hab lediglich versucht auf die eigentliche Frage des TE einzugehen.

Ob nun Ruby oder Python ist jedem selbst überlassen, ich merke nur noch mal an, was im Pragmatischen Programmierer steht: Lerne jedes Jahr 2 neue Programmiersprachen... :wink:
--
http://www.weltenwerk.net
^^
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 2. März 2006, 08:35

blackbird hat geschrieben:Wo ist da jetzt der Unterschied zu django und turbogears? Hey und sogar für Colubrid trifft das zu. Und ich glaube, dass TurboGears jetzt schon mächtiger als Ruby ist. :wink:
Alle diese Web-Frameworks inklusive Zope haben von Anfang an gleich auf die richtige Programmiersprache gesetzt. 8) Das kan RoR nie mehr aufholen. :P :P

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:

Donnerstag 2. März 2006, 08:40

synopia hat geschrieben:was im Pragmatischen Programmierer steht: Lerne jedes Jahr 2 neue Programmiersprachen... :wink:
Hi synopia!

Dem kann ich nicht zustimmen. Man braucht Jahre um aus einer Programmiersprache wie Python alles raus zu holen. Es gibt viele Module die man erst nach und nach kennen lernt. Würde man jedes Jahr eine oder zwei zusätzliche Programmiersprachen lernen, würde man in allen wahrscheinlich nur mittelmäßig sein. Man ist meistens mit *der* Programmiersprache am Besten, die man ständig einsetzt.

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: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 2. März 2006, 08:45

*zustimmt*

Ich hab mir gerade Python ausgesucht, weil man damit (fast) alles, überall machen kann. Im Web, Lokal, unter Windows/Linux/Mac usw.

Zum Glück hatte ich mir nicht PHP angesehen, weil es nur was für das Web ist. C/Java sind IMHO nur was für lokale Anwendungen, aber für's Web? (Nur mit speziellen Servern, nicht aber einfach mit CGI)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Donnerstag 2. März 2006, 08:55

synopia hat geschrieben:Allerdings halte ich es für ein Gerücht, dass Turbogears mächtiger ist als RoR
Rails ist relativ basic. Es hat templates, eine einfache Datenbankschnitstelle und das scaffolding system. TurboGears (und django auch) hat im Gegensatz dazu den Umgekehrten weg. Mach die Python Kasse und die DB erstellt es dir dazu. Und warum TG aktuell sehr genial ist: widgets und catwalk. Und was mir an django so gefällt ist das "alles unter einer Haube" und das admin interface.
synopia hat geschrieben:(Ruby hat im Übrigen nix mit Rails zu tun...).
Aber umgekehrt :)
synopia hat geschrieben:Wenn ich mir die Doku ansehe, ist vieles noch nicht dokumentiert und nur für die Alphaversion verfügbar. RoR ist schon eine ganze Weile "Stable" und es gibt inzwischen ein paar sehr gute Bücher (Bisher war ich der festen Überzeugung, dass man Bücher nicht braucht, da man alles aktueller im Web nachlesen kann, nun hab ich mir aber das oben genannte zugelegt und muss sagen, es geht viel.. vieeeel schneller sich mit einem (guten) Buch in ein solches Framework einzuarbeiten).
django ist stabiler als ruby da schon seit 2 Jahren im Einsatz, aber erst seit einem halben Jahr OpenSource. Mit der Geschwindigkeit und Stabilität von django kann momentan nichts konkurrieren.
synopia hat geschrieben:Ob nun Ruby oder Python ist jedem selbst überlassen, ich merke nur noch mal an, was im Pragmatischen Programmierer steht: Lerne jedes Jahr 2 neue Programmiersprachen... :wink:
Dem kann ich nicht zustimmen. Mit C(++) und Python kommt man aus. Ersteres für performancekritisches und zweiteres durch seine unlimitierten Möglichkeiten für den Rest.
TUFKAB – the user formerly known as blackbird
synopia
User
Beiträge: 17
Registriert: Mittwoch 1. März 2006, 19:47

Donnerstag 2. März 2006, 09:28

gerold hat geschrieben:
synopia hat geschrieben:Lerne jedes Jahr 2 neue Programmiersprachen... :wink:
...Man braucht Jahre um aus einer Programmiersprache wie Python alles raus zu holen. Es gibt viele Module die man erst nach und nach kennen lernt....
Ich meinte nicht, lerne und nutze jedes Jahr 2 neue Programmiersprachen, sondern lerne jedes Jahr 2 zwei neue kennen...
Invest Regularly in Your Knowledge Portfolio
Make learning a habit.
http://www.pragmaticprogrammer.com/ppbo ... _list.html
@blackbird:
Es gibt grundsätzlich die beiden Wege:
1. Erstelle die Klasse und lass die DB generieren
2. Mach ein DB Schema und lass die Klasse generieren
Beides hat Vor- und Nachteile. Bisher war ich eher auf der J2EE Schiene, da gabs eigentlich immer nur den ersten Weg. Damit hab ich aber auch sehr schlechte Erfahrungen gemacht, besonders wenn es um die Integration bestehender Datenbankschemata geht, oder wenn auch das letzte Stück Performance aus der DB geholt werden muss. Meistens macht man den DB Generator am Ende doch aus und erstellt das Schema manuell ;-)

RoR ist nicht basic. Es ist sehr umfassend und vorallem sehr durchdacht.

@jens: Man kann mit eigentlich jeder Programmiersprache sowohl für Web, als auch lokal unter Win oder Linux entwickeln. Und gerade Java ist im industriellen Feld die Sprache der Wahl, einfach weil es unendlich viele Frameworks und Toolkits für fast alles gibt, für die man auch Support kaufen kann...

@gerold: Dein Flame ignorier ich mal gekonnt ;-)

Code: Alles auswählen

puts "Hello"*5  # => "HelloHelloHelloHelloHello"
5.times { |i| puts "Hello" } # => "HelloHelloHelloHelloHello"
puts 20.minutes.ago # => Hehe
^^ Nur so

PS: kk... ich hör schon auf.
--
http://www.weltenwerk.net
^^
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 2. März 2006, 09:33

synopia hat geschrieben:@jens: Man kann mit eigentlich jeder Programmiersprache sowohl für Web, als auch lokal unter Win oder Linux entwickeln. Und gerade Java ist im industriellen Feld die Sprache der Wahl, einfach weil es unendlich viele Frameworks und Toolkits für fast alles gibt, für die man auch Support kaufen kann...
Da hast du sicherlich recht. Ich hatte allerdings versuch auszudrücken, das man dann spezielle Server braucht. Ich meine auf welchem billigen Shared-Hoster kannst du mit Java deine WebApp schreiben?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 2. März 2006, 09:42

synopia hat geschrieben:@gerold: Dein Flame ignorier ich mal gekonnt ;-)
Hi synopia!

Schon richtig so, war ja auch nicht so ernst gemeint. :twisted:

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten