Migration

Django, Flask, Bottle, WSGI, CGI…
BlackJack

@meego: Bottle ist genau eine Datei ohne zusätzliche Abhängigkeiten jenseits von der Python-Standardbibliothek. Kann also wenn es sein muss ganz einfach mit der Webanwendung zusammen als Modul ausgeliefert werden. Ist nahezu idiotensicher auch unter Windows, wenn man eine kleine lokale Anwendung schreiben muss/möchte, die über den Browser zu bedienen ist.

Ist halt wirklich ein Mikrorahmenwerk. Flask ist dagegen direkt Bloatware mit Unmengen von Abhängigkeiten. :twisted: (duck'n'cover…)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

> Die sehen ja ziemlich ähnlich aus, ausser das Bottle überhaupt keine Community hat.
Das ist aber oberflächlich... Bottle hat sehr wohl eine Community (im Sinne von Nutzerkreis), aber so gut wie kein Ökosystem an Extensions.

Außerdem sind die beiden auch nur ähnlich, weil der Routing-Dekorator ähnlich ist. Und das war's dann auch schon. Flask hat viel leistungsfähigere und komplexere Templates und mit Werkzeug auch ein leistungsfähigeres (und wenn man möchte auch komplexeres) Routing via Werkzeug.

DER Grund, warum Bottle eingesetzt wird, steht ja schon in BlackJacks Post: es ist einfach und simple zu benutzen. Wer nur ein paar Funktionen an ein paar URLs binden will, fährt mit Bottle sehr gut.

Gruß, noisefloor
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

noisefloor hat geschrieben:Das ORM von Django finde ich persönlicher einfacher als SQLAlchemy, das Forms-Framework von Django finde ich einfacher als WTForms.
Djangos ORM ist ganz objektiv einfacher kann aber auch wesentlich weniger und komplexe Queries lassen sich nur sehr umständlich formulieren. Bei Django Forms stimme ich definitiv zu.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
DasIch hat geschrieben:Djangos ORM ist ganz objektiv einfacher kann aber auch wesentlich weniger und komplexe Queries lassen sich nur sehr umständlich formulieren.
Das stimmt. SQLAlchemy ist ja auch unumstritten _das_ ORM für Python.
Wobei es für mich (und wahrscheinlich auch viele andere Nutzer) keine Rolle spielt, weil keine komplexen Queries gebraucht werden.

@meego: Bei Django ist es IMHO _sehr_ wichtig, dass man selber eine App schreibt. Bottle und auch Flask lassen sich beim Lesen der Doku ja schon verstehen, bei Djanog hilft "learning by doing".
Plus die Django Doku lässt auch kaum Fragen offen - da diese aber ziemlich umfangreich ist sollte man immer nur den Abschnitt lesen, der gerade relevant ist.
Als Tutorials finde ich das offizielle Django-Tutorial und auch das "Django for Girls" Tutorial sehr gut. Mehr braucht man IMHO erst mal nicht.

Gruß, noisefloor
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

BlackJack hat geschrieben:@meego: Bottle ist genau eine Datei ohne zusätzliche Abhängigkeiten jenseits von der Python-Standardbibliothek. Kann also wenn es sein muss ganz einfach mit der Webanwendung zusammen als Modul ausgeliefert werden. Ist nahezu idiotensicher auch unter Windows, wenn man eine kleine lokale Anwendung schreiben muss/möchte, die über den Browser zu bedienen ist.

Ist halt wirklich ein Mikrorahmenwerk. Flask ist dagegen direkt Bloatware mit Unmengen von Abhängigkeiten. :twisted: (duck'n'cover…)
Aus reiner Neugier: Was sind denn das für Programme, die so ganz ohne Plugins auskommen? Brauchst du wirklich keine Formulartests? Den Vorteil mit der einen Datei verstehe ich nicht. Mit Python hat man sowieso schnell mehrere .py Files und muss dann eh bald Verzeichnissen arbeiten, oder?
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

noisefloor hat geschrieben:Hallo,

> Die sehen ja ziemlich ähnlich aus, ausser das Bottle überhaupt keine Community hat.
Das ist aber oberflächlich... Bottle hat sehr wohl eine Community (im Sinne von Nutzerkreis), aber so gut wie kein Ökosystem an Extensions.
Wo befindet die sich denn? Auf IRC habe ich damals nix gefunden. Die dortige Django-Community hat mir damals aber auch klar zu verstehen gegeben. Das Bottle Communitymässig ganz sicher keine Alternative zum Konkurrenten Flask sei.
Sirius3
User
Beiträge: 17749
Registriert: Sonntag 21. Oktober 2012, 17:20

@meego: es gibt genug Probleme, wo man gar keine Formulare oder Datenbanken oder dieses ganze Zeug braucht. Überall dort, wo man schon eine externe Datenbank vorgegeben hat, kommt man mit dem Django-ORM auch nicht weiter und muß sowieso schon SQLAlchemy o.ä einsetzen. Django ist also das Komplettpaket wenn auf der grünen Wiese startet, und Flask ist dann halt das übergewichtige Framework, für Leute die gerne Balast herumschleppen.
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

noisefloor hat geschrieben:Wobei es für mich (und wahrscheinlich auch viele andere Nutzer) keine Rolle spielt, weil keine komplexen Queries gebraucht werden.
Konkrete Frage: Wie sieht es mit einem Vokabeltrainer/Wörterbuch aus? Hier ein Beispiel:
Link
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

Sirius3 hat geschrieben:Flask ist dann halt das übergewichtige Framework, für Leute die gerne Balast herumschleppen.
@Sirius: Das Selbstverständnis ist aber doch eher umgekehrt, oder? :mrgreen:
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
meego hat geschrieben:Konkrete Frage: Wie sieht es mit einem Vokabeltrainer/Wörterbuch aus? Hier ein Beispiel:
Link
Keine Ahnung - haben mir über dieses deiner Programmierprobleme noch keine Gedanken gemacht.

Probier's doch einfach aus - learning by doing. Manchmal habe ich echt den Eindruck, dass du dir beim Programmieren total selber im Weg stehst, weil du a) mögliche Probleme siehst ohne zu Wissen, ob du sie haben wirst (Stichwort: SQLAlchemy vs. Django ORM), b) eine Meinung zum Python-Modul $FOO hast, weil du die Meinung eines dritten unreflektiert übernimmst (siehe oben, Stichwort Bottle & Community) und c) Vorteil gegenüber Modul $FOO hast, weil dir ein Satz in der Doku nicht passt (siehe oben Stichwort: Django-Routing und RegEx).
Außerdem gibt es nicht "das beste Modul", dass ist s/w Denken. Das Python-Ökosystem ist so groß, dass jeder _für_sich_ das beste Modul finden muss.
Wo befindet die sich denn? Auf IRC habe ich damals nix gefunden.
Wie ich oben sagte, meine ich Community im Sinne von Nutzerkreis. Ansonsten hat BlackJack Bottle ja schon auf den Punkte gebracht: "Ist nahezu idiotensicher". Was IMHO auch stimmt, weil Bottle außer Routing, Zugriff auf GET-Parameter und POST-Daten und SimpleTemplate (was ja wirklich simpel ist) nicht viel kann. Sollte jeder verstehen. Bzw. selbst die Programmier-Noobs im deutschen Raspi-Forum kommen damit klar.

Gruß, noisefloor
meego
User
Beiträge: 380
Registriert: Montag 4. März 2013, 14:36

Ich fühle mich aber nicht kompetent für mich zu beantworten ob das Djanog-ORM für Sprache ausreicht.

Bezüglich Bottle gibt es einen nie besetzten Chat und einen Twitterkanal und offenbar eine kaum aktive Google Group. Also ich weiss immer noch nicht, wo diese Community versteckt sein soll. Ich fand die von Flask schon klein. Fragen wurden auf IRC generell nur vom Entwickler beantwortet. Die IRC Gruppe von Django ist immerhin ca. doppelt so gross.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich fühle mich aber nicht kompetent für mich zu beantworten ob das Djanog-ORM für Sprache ausreicht.
Wenn DU dein geplantes Datenbank-Modell und die für's erste geplanten Queries nicht kennst - woher sollen es dann wer anders kennen?
Aber eigentlich sollte man da mit 3 Tabellen auskommen....

Wobei ich an anderes Stelle ja schon mal sagte, dass ich dafür ggf. gar kein RDBMS nehmen würde, sondern z.B. eine Dokumenten-orientierte DB wie CouchDB.

Gruß, noisefloor
BlackJack

@meego: Ich habe ab und zu mal Aufgaben, die keine Datenbank und auch keine komplexen Formulare benötigen. Zum Beispiel das per Webinterface ein Programm gestartet werden können soll das Dateien aus einem Verzeichnis nimmt und die an ein anderes, externes Programm verfüttert und eine Webseite zur Verfügung stellt wo dann eine Zusammenfassung von Logdateien von diesem externen Programm angezeigt wird. Und das ganze auf Windows und mit möglichst wenig Installationen die irgendwelche Rechte brauchen. Oder ähnliches für ”exotische” Hardware wie NAS-Geräte auf denen ein ziemlich verkorkstes Linux läuft. Da ist dann auch die eine Datei ein Vorteil, die man einfach zu den eigenen Dateien dazu packt und nicht irgendwie installieren muss. Bei Flask wird das dann schon schwieriger ohne pip die Abhängigkeiten mit dazu zu packen. Es geht, aber einfach eine Datei in den gleichen Ordner kopieren ist simpler. Das Problem sind nicht mehrere Dateien oder Verzeichnisse, sondern dass das alles „self contained“ ist und nicht ”installiert” werden muss.
Antworten