Wird man durch Django bevormundet?

Django, Flask, Bottle, WSGI, CGI…
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Aber du brauchst definitiv:
* Formular Generierung (gut, kann man auch per Hand machen, aber möchte man???)
* Formular Validierung (gut, kann man auch weglassen, aber möchte man?!?)
* ORM (gut, man kann auch pure SQL Statements im Programm haben, aber möchte man?!?)
* Session/Userdaten/Login (gut, könnte man per .htaccess machen, aber will man das?!?)

Wenn man will, kann man CGI/WSGI pur machen und kein Framework für irgendwas nehmen: Aber alles zu Fuss machen und somit doch ein eigenes, kleines Framework aufbauen?

Dann doch eins der micro Frameworks... Aber was deckt es ab und welche Lösungen für die über gebliebenen Probleme nehmen?!?

...oder doch in Django einarbeiten und man hat erstmal ausgesorgt...?

Klar, für Kleinigkeiten, erscheint es übertrieben. Aber für kleine Sachen Framework XY + Lib foo + Lib bar nehmen und bei großen Sachen, dann doch in Django einarbeiten und von "vorn" anfangen?!?

Jetzt denkst du nur an was kleines. Aber bleibt es dabei?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
chevallier
User
Beiträge: 22
Registriert: Sonntag 3. Mai 2015, 16:26

jens hat geschrieben:...oder doch in Django einarbeiten und man hat erstmal ausgesorgt...?
...
Jetzt denkst du nur an was kleines. Aber bleibt es dabei?
Die Logik verstehe ich ja: Django und gut ist. Es ist ja auch nicht so, dass ich faul bin. Und früher oder später wird's etwas größeres, das steht auch fest. Das Problem ist einfach nur, dass ich das viel zu selten tue - bis ich was größeres publiziere, kann schon mal ein halbes/dreiviertel Jahr vergehen und dann muss ich Django erneut lernen. Oder ich schreibe Karteikarten mit den ganzen Django-Zeugs und wiederhole sie jeden Tag bis es dann soweit ist...
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Microframeworks lassen sich ja auch mit Plugins erweitern. Für Flask gibt es z.B. ein SQLAlchemy-Plugin (Doku) und für Bottle existiert sicher etwas ähnliches. Zur Validierung von Formularen gibt es auch jeweils Plugins. Nur hat man sich dann im Endeffekt ein halbes Django zusammengebaut.

Das einzige, was ich bei Bottle und Flask einfacher zu erlernen finde, ist das Routing, weil man dafür Dekoratoren nutzen kann. Dies ist bei Django und einigen anderen größeren Frameworks nicht möglich. Aber ansonsten bietet Django einem kostenlos alles aus einem Guss an. Bei PHP bräuchte man mit Sicherheit auch einige Plugins. Außer man will die Dinge auf niedrigster Ebene lösen. Das kann man in Python ja genau so machen. Nur ist dies nicht der übliche Weg in der Praxis.

Ich unterstelle hier einfach mal bei deinem Python-PHP-Vergleich, dass du entweder die Fähigkeiten von PHPs Standardbibliothek höher einschätzt als sie sind, oder dass du tatsächlich lieber alles selber aufbaust. Nur ist letzteres wie gesagt alles andere als emfehlenswert.

Woran hapert es bei dir denn in Bezug auf die Django-Doku? Weißt du nicht so recht, wie du anfangen sollst? Erschließen sich dir bestimmte Vorgehensweisen noch nicht? Denn nichts für ungut, aber ein allgemeines Rumgejammer wird dich kaum weiter bringen, falls du Hilfe vom Forum erwartest. Du solltest hier schon konkreter werden.
BlackJack

@chevallier: Wenn Du an PHP magst das man einfach eine Datei schreibt wo Programm und HTML drin ist, dann lass die Finger von Python. So funktioniert das in Python nicht. In Python ist eine Trennung von Datenhaltung, Programmlogik, und Repräsentation üblich. Also bedeutet das in der Regel ein ORM und ein Template-System und das Routing des Rahmenwerks lernen zu müssen. Bei Django bekommt man ein Komplettpaket, bei Bottle und Flask muss/kann man sich die Sachen die über's Routing und ein paar andere Grundlagen hinaus gehen selber kümmern, sprich zusätzliche Bibliotheken einbinden.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich selber habe ja früher Bottle benutzt, später in Kombination mit SQLAlchemy und WTForms. Grund: ich dachte, Django wäre zu komplex.

Nur hatte ich mit Bottle+SQLAlchemy+WTForms auch nur die "Grundfunktionen" eines "großen" Webframeworks nachgebaut - Routing+ORM+Formulare.

Letztes Jahr habe ich dann auf Django gewechselt. Weil: durch alles unter einer Haube geht vieles einfacher und schneller.

Habe ich dadurch den Einsatz von Bottle+SQLAlchemy+WTForms jetzt "mehr" gelernt? Nicht wirklich. Das einzige ist vielleicht, dass - wie schon erwähnt - mit Bottle (Flask) für Newbies einfacher zu verstehen ist wie das mit WSGI und dem Routing funktioniert. Dafür reicht aber schon die Doku lesen und vielleicht selber mal ein Beispielprogramm schreiben - da muss man nicht direkt seine ganze Applikation auf Bottle setzen.

Gruß, noisefloor
oesah
User
Beiträge: 11
Registriert: Sonntag 7. Juni 2015, 16:14

Also ich nutze Django schon seit Jahren erfolgreich ohne Flask oder Bottle. Bei mir geht das Folgende Prinzip vor:

" We cross the bridge, when we get there." --> Wir überqueren die Brücke erst, wenn wir da sind.

Das heisst im Klartext, dass du dir ein Projekt vornehmen kannst. Dann arbeitest du dich voran bis du dein Projekt fertig hast (z.B. ein Django Blog). Dann musst du überlegen, was du eigentlich damit machen willst. Soll es auf einem Server laufen oder eher lokal? Je nach Entscheidung, erweiterst du dein Wissen wie es nötig ist.

Dieses Schritt für Schritt Verfahren hat mir beim Lernen enorm geholfen. So wirkt das Ganze auch nicht überfordernd, weil man kleine "Lernpakete" hat. Irgendwann ist dein Wissen soweit, dass du anfängst Verbindungen zwischen den ganzen Technologien zu ziehen. Ab dann bekommst du ein ganzheitliches Wissen, wie das ganze abläuft. Sobald du sicher darin bist, kannst du die nächste Baustelle angehen (z.B. Automatisiertes Testen). Hier auch wieder in kleinen Schritten voran gehen.

Die Lernkurve ist am Anfang vielleicht nicht so steil, aber nach einer kritischen Masse an Wissen steigt Sie steil hoch (so war es bei mir). Heute kann ich Neues innerhalb kürzester Zeit erlernen (je nach Komplexität).

Das waren meine 2 Cent :)
Özer Sahin
Freiberuflicher Python Programmierer
oesahIT Consulting
Antworten