Mich würde interessieren, was ihr vom Projekt "Python on Wheels" haltet.
Einerseits ist es ein recht interessantes Konzept, andererseits gibt es keinerlei Literatur darüber. Es scheint also bestenfalls ein Nischenprodukt zu sein, das vor dem Durchbruch oder vor dem Tod steht.
Ich bin nämlich gerade am Schwanken, welches Webframework ich verwenden soll (dieses oder doch Flask).
Eure Meinung zu Python on Wheels
-
- User
- Beiträge: 219
- Registriert: Donnerstag 21. Juli 2011, 07:01
- Wohnort: Stade / Hamburg
- Kontaktdaten:
Die Frage ist ja auch, wofür willst du es verwenden? Ein kleines Hobbyprojekt? Da kann man auch mal was ausprobieren. Ein Kundenprojekt? Da würde ich sicher beim Mainstream bleiben, auch damit der Kunde nicht allein von mir abhängig ist.
Ein Hobbyprojekt. Einem Kunden könnte man das echt nicht anpreisen.
Anderseits möchte ich mich aber auch für ein privates Projekt nicht in die Ecke manövrieren.
Gibt es letztlich nur die Wahl zwischen Django und Flask? Wie kommen die beiden eigentlich damit zurecht, dass man sich den Inhalt sowohl auf dem Desktop als auch auf dem Handy ansieht?
Anderseits möchte ich mich aber auch für ein privates Projekt nicht in die Ecke manövrieren.
Gibt es letztlich nur die Wahl zwischen Django und Flask? Wie kommen die beiden eigentlich damit zurecht, dass man sich den Inhalt sowohl auf dem Desktop als auch auf dem Handy ansieht?
Es gibt etliche Rahmenwerke, die Frage ist, wie sehr braucht man bestimmte Funktionalität und wie groß soll der Nutzerkreis sein.
Wie etwas auf dem Desktop oder Handy angezeigt wird, ist keine Frage des Rahmenwerkes, sondern eine Frage von HTML und CSS.
Wie etwas auf dem Desktop oder Handy angezeigt wird, ist keine Frage des Rahmenwerkes, sondern eine Frage von HTML und CSS.
Funktionalität und Nutzerkreis sind schwierig zu beurteilen, weil das Projekt organisch wachsen soll und nie fertig wird, und sie sich daher im Laufe der Zeit ändern werden.
Ich nehme auch an, dass sich etliche HTML-Seiten am Desktop vom Aufbau der Komponenten ABC sind, aber auf dem Handy BA, und C ist hinter Menüs. Kann man das mit CSS abbilden? Ich bin kein Profi, was CSS angeht.
Wie ich das nämlich verstanden habe wird mit Flask eine nur begrenzt dynamische Seite generiert.
Ich nehme auch an, dass sich etliche HTML-Seiten am Desktop vom Aufbau der Komponenten ABC sind, aber auf dem Handy BA, und C ist hinter Menüs. Kann man das mit CSS abbilden? Ich bin kein Profi, was CSS angeht.
Wie ich das nämlich verstanden habe wird mit Flask eine nur begrenzt dynamische Seite generiert.
Wie ich das verstanden habe, wird in Flask ja die fertige HTML Seite aus einem Template generiert. Die Reihenfolge der einzelnen Komponenten sollte da eigentlich nicht vom Typ des Endgeräts abhängig sein, sondern es werden im Template nur einzelne Strings oder Listen angepasst.
- __blackjack__
- User
- Beiträge: 14136
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@zegru: Die Anzeige wird auf dem Endgerät per CSS geregelt. http://www.csszengarden.com ist da so ein Showcase wo immer das gleiche HTML mit verschiedenen CSS-Dateien gestylt wird.
Das CSS schreibt man in der Regel auch nicht selbst, sondern verwendet eines der CSS-Rahmenwerke wie Bootstrap.
Das CSS schreibt man in der Regel auch nicht selbst, sondern verwendet eines der CSS-Rahmenwerke wie Bootstrap.
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
Aha. Okay.
Und ob man Django oder Flask verwenden sollte, ist vermutlich eine Glaubensfrage (sowas wie Emacs oder vi)?
Generell muss ich übrigens sagen, dass ich vom generellen Antwortverhalten des Forums positiv überrascht bin: Es ist schnell, hilfreich und freundlich.
Aber einen Rant zu Python selber muss ich noch ablassen: Mir gefällt die Programmiersprache ziemlich gut, aber das "explizit ist besser als implizit" hat mir bei OOP (und vermutlich demnächst bei der Webprogrammierung) schon so manches Bein gestellt.
Und ob man Django oder Flask verwenden sollte, ist vermutlich eine Glaubensfrage (sowas wie Emacs oder vi)?
Generell muss ich übrigens sagen, dass ich vom generellen Antwortverhalten des Forums positiv überrascht bin: Es ist schnell, hilfreich und freundlich.
Aber einen Rant zu Python selber muss ich noch ablassen: Mir gefällt die Programmiersprache ziemlich gut, aber das "explizit ist besser als implizit" hat mir bei OOP (und vermutlich demnächst bei der Webprogrammierung) schon so manches Bein gestellt.
- noisefloor
- User
- Beiträge: 4209
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Flask ist ein "kleines" Rahmenwerk, was außer Routing (über das sehr mächtige Werkzeug, was im Hintergrund werkelt) und Template-Engine (wie Jinja2, die wahrscheinlich populärste Template-Enginge für Python) erstmal nichts kann. Aber es gibt einen Haufen Erheiterungen.
Django hat ziemlich massive "batteries included", also außer Routing und Template Engine (wenn man möchte auch Jinja2) eine ORM zu Datenbankanbindung, Formularframework, Authentifizierungsframework, Admin-Frontend etc. und das ganze ziemlich hoch integriert. Und auch für Django gibt es einen Haufen Erweiterungen.
"Besser" in dem Sinne ist keins, es kommt halt drauf an, was man sucht & möchte. Für mich persönlich ist die hohe Integration von Django praktischer, weswegen ich vor ein paar Jahren mal von Bottle (ohne Bottle gäbe es wahrscheinlich heute kein Flask
) + SQLAlchemy + Wtforms zu Django gewechselt bin.
Außer den beiden ist noch Tornado halbwegs populär und FastAPI ist gerade hip, wenn man (Web-) APIs bauen möchte.
Gruß, noisefloor
Nee, das ist ja auch nicht das gleiche. Vi und emacs sind ja schon eher zwei gleichwertige Editoren mit völlig anderem Ansatz zum Bedienen.Und ob man Django oder Flask verwenden sollte, ist vermutlich eine Glaubensfrage
Flask ist ein "kleines" Rahmenwerk, was außer Routing (über das sehr mächtige Werkzeug, was im Hintergrund werkelt) und Template-Engine (wie Jinja2, die wahrscheinlich populärste Template-Enginge für Python) erstmal nichts kann. Aber es gibt einen Haufen Erheiterungen.
Django hat ziemlich massive "batteries included", also außer Routing und Template Engine (wenn man möchte auch Jinja2) eine ORM zu Datenbankanbindung, Formularframework, Authentifizierungsframework, Admin-Frontend etc. und das ganze ziemlich hoch integriert. Und auch für Django gibt es einen Haufen Erweiterungen.
"Besser" in dem Sinne ist keins, es kommt halt drauf an, was man sucht & möchte. Für mich persönlich ist die hohe Integration von Django praktischer, weswegen ich vor ein paar Jahren mal von Bottle (ohne Bottle gäbe es wahrscheinlich heute kein Flask

Außer den beiden ist noch Tornado halbwegs populär und FastAPI ist gerade hip, wenn man (Web-) APIs bauen möchte.
Gruß, noisefloor
Schon. Aber das ist keine Spezialität von Flask, sondern halt allgemein die Art, wie Webframeworks funktionieren. Ganz grob vereinfacht hast du klassischerweise HTML – das ist für die logische Struktur eines Dokuments zuständig; CSS – das ist für die visuelle Gestaltung des durch HTML logisch ausgezeichneten Dokuments zuständig; und JavaScript – das sorgt für dynamische Features im Browser. Das Webframework generiert das HTML, JavaScript und CSS werden meistens statisch ausgeliefert. Der Browser bastelt das alles zusammen und zeigt dir die Webseite an. Es gibt auch andere Modelle (z.B. solche, die stärker auf JavaScript im Browser setzen und die Daten vom Server als JSON beziehen), aber das ist halt die klassische Variante.zegru hat geschrieben: Montag 23. November 2020, 15:53 Wie ich das verstanden habe, wird in Flask ja die fertige HTML Seite aus einem Template generiert.
Einen minimalen Glaubensaspekt gibt es vielleicht schon, aber überwiegend sind das doch recht handfeste Gründe, die dafür sprechen, das eine oder das andere zu verwenden. Bei Django bekommt man halt einen großen Werkzeugkasten von fertigen Bausteinen und Teillösungen für übliche Fragen und Teilaufgaben bei der Entwicklung von Webanwendung geliefert. Wenn man Django beherrscht, kann man damit sehr schnell typische Webanwendungen bauen, die sich an Best Practices usw. halten. Flask ist da deutlich minimalistischer.zegru hat geschrieben: Montag 23. November 2020, 16:23 Und ob man Django oder Flask verwenden sollte, ist vermutlich eine Glaubensfrage (sowas wie Emacs oder vi)?
Wenn man in erster Linie Entwickler ist und eine Website haben möchte, die anständig aussieht, responsiv ist und sich an Best Practices hält, sehe ich das auch so. Unkritisiert ist dieser Trend zu CSS Frameworks aber (wie fast alles) natürlich nicht. Gerade bei hauptberuflichen Designern ist mir da vermehrt Kritik begegnet; die sagen einem dann, die Websites sehen alle gleich aus, das CSS ist viel überfrachteter, als es sein müsste, jemand, der CSS anständig beherrscht und sich mit Design auskennt, braucht so etwas nicht usw.__blackjack__ hat geschrieben: Montag 23. November 2020, 16:04 Das CSS schreibt man in der Regel auch nicht selbst, sondern verwendet eines der CSS-Rahmenwerke wie Bootstrap.
- __blackjack__
- User
- Beiträge: 14136
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Zum Vergleich Flask/Bottle zu Django würde ich eher sagen das ist wie Vim/Emacs vs. PyCharm. Man kann pluginfähige Editoren in der Regel bis zur vollen IDE aufrüsten, muss es aber nicht, und hat dabei oft auch die Wahl zwischen verschiedenen Plugins für vergleichbare Features, während das bei einer IDE alles schon eingebaut ist, auch Sachen die man vielleicht nicht braucht, oder wo man dann keine Wahl hat ein anderes Plugin zu verwenden.
@nezzcarth: Aus Sicht eines Designer eine berechtigte Kritik, aber ich bin halt keiner und ich kann und will da keine Zeit investieren etwas selbst zu schreiben und mit zig Browsern zu testen, wenn es das schon fertig getestet gibt. Das die Webseiten alle gleich aussehen ist ein Pluspunkt aus meiner Sicht, weil dann die Webseite genau so aussieht und funktioniert wie all die anderen, die der Anwender schon gewohnt ist. Liegt aber vielleicht auch wieder daran das ich Webanwendungen schreibe und keine trendy, abgefahrenen, Webseiten ”designe”. Das soll in erster Linie für den Benutzer verständlich sein und funktionieren und sich nicht hauptsächlich optisch von allen anderen unterscheiden.
(Ich weiss noch wie ich damals das erste mal Bootstrap im Intranet eingesetzt habe und damit mein CSS mit meinem tollen Farbschema durch langweilige Vorgaben ersetzt wurden. Die Kollegen waren aus meiner Sicht völlig überzogen erfreut.
)
@nezzcarth: Aus Sicht eines Designer eine berechtigte Kritik, aber ich bin halt keiner und ich kann und will da keine Zeit investieren etwas selbst zu schreiben und mit zig Browsern zu testen, wenn es das schon fertig getestet gibt. Das die Webseiten alle gleich aussehen ist ein Pluspunkt aus meiner Sicht, weil dann die Webseite genau so aussieht und funktioniert wie all die anderen, die der Anwender schon gewohnt ist. Liegt aber vielleicht auch wieder daran das ich Webanwendungen schreibe und keine trendy, abgefahrenen, Webseiten ”designe”. Das soll in erster Linie für den Benutzer verständlich sein und funktionieren und sich nicht hauptsächlich optisch von allen anderen unterscheiden.
(Ich weiss noch wie ich damals das erste mal Bootstrap im Intranet eingesetzt habe und damit mein CSS mit meinem tollen Farbschema durch langweilige Vorgaben ersetzt wurden. Die Kollegen waren aus meiner Sicht völlig überzogen erfreut.
“It is easier to change the specification to fit the program than vice versa.” — Alan J. Perlis
Wie ich das verstanden habe, ist Django out of the box mächtiger als Flask out of the box. Kann man eigentlich Flask im Normalbetrieb soweit pimpen, dass sie dann gleich mächtig sind? Und ist das der Normalfall, oder wäre das eher ungewöhnlich?
-
- User
- Beiträge: 219
- Registriert: Donnerstag 21. Juli 2011, 07:01
- Wohnort: Stade / Hamburg
- Kontaktdaten:
Du kannst auch zu Flask entsprechende Pakete für z.B. Userverwaltung oder Sessions oder sonstwas hinzufügen. Damit erreichst du dann ähnliche Funktionalitäten.
Und ja, es ist üblich auch Flask zu erweitern und weitere Pakete zu nutzen. Django 1:1 zu kopieren ist dabei aber nicht die Motivation, eher die passende Funktionalität für mein Projekt. Wie ein Maßanzug halt im Gegensatz zum Anzug von der Stange.
Und ja, es ist üblich auch Flask zu erweitern und weitere Pakete zu nutzen. Django 1:1 zu kopieren ist dabei aber nicht die Motivation, eher die passende Funktionalität für mein Projekt. Wie ein Maßanzug halt im Gegensatz zum Anzug von der Stange.
@zegru:
Dass man Flask soweit aufrüstet, dass es funktional im Prinzip äquivalent zu Django ist, ist aus meiner Sicht unüblich. Django bringt mehr Komponenten mit, als man in so manchen Projekten jemals brauchen wird. Django hat einen eigenen ORM, der eng mit dem automatisch generierten Admin-Panel verzahnt ist, ein Templatesystem, Caching- und Sessionframeworks, Authentifizierungsmechanismen, Krempel für Formulare, Security, Mailversand, Internationalisierung, Newsfeeds, Sitemaps, etc. pp. Und die Komponenten sind alle aufeinander abgestimmt und integriert. Das ist, wo Django eben seine Stärke hat. In der Form wirst du das mit Standardkomponenten so nicht oder nur mit extremem Aufwand erreichen.
Aber jemand, der Flask (oder auch bottle.py oder Pyramid) verwendet, möchte das auch eher gar nicht. Das ist halt der Ansatz ein anderer. Man fängt da mit einem relativ minimalistischen Kern an und baut nur das ein, was man braucht. Da wählst du denn eben den ORM oder die NoSQL-Datenbank, der/die für das konkrete Projekt passt (oder auch gar keinen, wenn du gar keine DB braucht), das Templatesystem, das dir zusagt, die Formularvalidierungsbibliothek, die passt (oder wieder gar keine, wenn du keine brauchst) usw. Django und Flask haben zwar irgendwo schon einen Überlappungsbereich, aber der Ansatz und die Motivation für die Verwendung sind in den Standardanwendungsfällen schon recht verschieden.
@__blackjack__:
Ich sehe das weitgehend auch so; ich bin eben auch kein Designer
Allerdings würde ich sagen "Design" bedeutet nicht unbedingt, dass man optische Hingucker gestaltet. Bei gutem Design kann es ja auch genau darum gehen, die Ziele zu erreichen, die du benannt hast, nämlich, dass die Seite intuitiv bedienbar und funktional ist, maßgeschneidert auf ein konkretes Projekt.
Dass man Flask soweit aufrüstet, dass es funktional im Prinzip äquivalent zu Django ist, ist aus meiner Sicht unüblich. Django bringt mehr Komponenten mit, als man in so manchen Projekten jemals brauchen wird. Django hat einen eigenen ORM, der eng mit dem automatisch generierten Admin-Panel verzahnt ist, ein Templatesystem, Caching- und Sessionframeworks, Authentifizierungsmechanismen, Krempel für Formulare, Security, Mailversand, Internationalisierung, Newsfeeds, Sitemaps, etc. pp. Und die Komponenten sind alle aufeinander abgestimmt und integriert. Das ist, wo Django eben seine Stärke hat. In der Form wirst du das mit Standardkomponenten so nicht oder nur mit extremem Aufwand erreichen.
Aber jemand, der Flask (oder auch bottle.py oder Pyramid) verwendet, möchte das auch eher gar nicht. Das ist halt der Ansatz ein anderer. Man fängt da mit einem relativ minimalistischen Kern an und baut nur das ein, was man braucht. Da wählst du denn eben den ORM oder die NoSQL-Datenbank, der/die für das konkrete Projekt passt (oder auch gar keinen, wenn du gar keine DB braucht), das Templatesystem, das dir zusagt, die Formularvalidierungsbibliothek, die passt (oder wieder gar keine, wenn du keine brauchst) usw. Django und Flask haben zwar irgendwo schon einen Überlappungsbereich, aber der Ansatz und die Motivation für die Verwendung sind in den Standardanwendungsfällen schon recht verschieden.
@__blackjack__:
Ich sehe das weitgehend auch so; ich bin eben auch kein Designer

Ein wichtiger Punkt bei Django ist dass man an Flexibilität verliert, den um all diese Probleme im Framework zu lösen, muss dieses auch bestimmen wie diese Probleme gelöst werden.
Bei einem komplett neuen Projekt kann das egal sein aber wenn man konkrete Anforderung hat an Dinge wie Authentication oder Authorization hat, steht dir Django schnell im Weg. Djangos ORM ist auch so ein Problemfall, funktioniert ganz gut für einfache CRUD Queries und ist damit für typische Webanwendungen ganz ok. Wenn du da allerdings drüber hinaus möchtest, bist du schnell dabei SQL zu schreiben.
Flask ist zwar ein bisschen mehr Lego aber ich hab am Ende dann etwas dass genau auf mein Problem zugeschnitten ist anstatt die 08/15 Lösung die schon so irgendwie passt.
Zugegeben auch Django kann man sich natürlich anpassen aber dann ist’s auch nicht leichter als Flask.
Bei einem komplett neuen Projekt kann das egal sein aber wenn man konkrete Anforderung hat an Dinge wie Authentication oder Authorization hat, steht dir Django schnell im Weg. Djangos ORM ist auch so ein Problemfall, funktioniert ganz gut für einfache CRUD Queries und ist damit für typische Webanwendungen ganz ok. Wenn du da allerdings drüber hinaus möchtest, bist du schnell dabei SQL zu schreiben.
Flask ist zwar ein bisschen mehr Lego aber ich hab am Ende dann etwas dass genau auf mein Problem zugeschnitten ist anstatt die 08/15 Lösung die schon so irgendwie passt.
Zugegeben auch Django kann man sich natürlich anpassen aber dann ist’s auch nicht leichter als Flask.