Hallo,
erster Eindruck von Django -> ... alles neu, alles anders... und mächtig! Gibts da u.a. eine Buchempfehlung oder sollte man sich da an die Webresourcen halten?
Python Webprogrammierung Einbindung in HTML?
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Also ich würde versuchen, erst einmal das Tutorial durch zu *arbeiten*. Ich denke damit kommst Du schon recht weit
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ich bin grade in der ... Orientierungsphase. Die kommt bei mir nach der "oh mein Gott ich bin erschlagen Phase" . Kommt Zeit kommt (dank Tutorial) hoffentlich auch Rat.
Django scheint ja wirklich einiges selbst in die Hand zu nehmen. (Man muss ja nich mal die SQL Kommandos selbst basteln )
Django scheint ja wirklich einiges selbst in die Hand zu nehmen. (Man muss ja nich mal die SQL Kommandos selbst basteln )
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Das muss man bei Bottle oder Flask auch nicht; nur musst Du dafür dann das SQL-Framework "SQLALchemy" bemühen - Django bringt seinen eigenen "ORM" (= object relational mapper) inkl. SQL-Abstraktionsschicht mit.mcdaniels hat geschrieben: Django scheint ja wirklich einiges selbst in die Hand zu nehmen. (Man muss ja nich mal die SQL Kommandos selbst basteln )
Daran siehst Du vielleicht, womit ich bei einem meiner Postings hinaus wollte, als ich schrieb, dass man sich bei den Mikro-Frameworks um viele selber kümmern muss.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Wenn ich Flask hat mit Jinja2 imho eine bessere Template Engine als Django. SQLAlchemy ist imho besser als das ORM von Django und flatland ist imho ebenfalls besser als Form Library. Klar hab ich die Funktionalität prinzipiell mit Django schon aber sich für ein Microframework zu entscheiden nur weil es kleiner ist, ist genauso lächerlich wie zu sagen es wäre sinnvoll Frameworks zu haben die nur aus einer Datei bestehen.snafu hat geschrieben:Man kann höchstens sagen: "Ok, ich nehm jetzt z.B. Flask mit seinen Extensions und arbeite mich durch die einzelnen Dokus". Wäre dann halt nicht mehr alles aus einem Guß und man fragt sich am Ende wahrscheinlich, warum man nicht direkt Django benutzt hat.
Was die Micro Frameworks (bottle benutze ich selbst) aber nicht haben ist eine große, engagierte Community. Und das ist bei django eine großes plus. Nicht, weil das programmieren damit besser wäre. In Gegenteil, da ist viel Schatten. Aber einfach zb ein CMS einklinken zu können, das ist ein wichtiger Punkt. Natürlich nicht für jede Seite. Aber schon für viele.
Ich selbst ziehe rein technisch TurboGears2 oder Pyramid vor - aber zumindest ersteres ist Community-Wise fast tot. Und Pyramid hat auch noch nicht den Dampf dahinter.
Ich selbst ziehe rein technisch TurboGears2 oder Pyramid vor - aber zumindest ersteres ist Community-Wise fast tot. Und Pyramid hat auch noch nicht den Dampf dahinter.
Die Flask-Community würde ich nicht als klein bezeichnen, z.Z. befinden sich 273 Leute in #Pocoo auf Freenode, viele davon nutzen Flask (DasIch verbessere mich, wenn ich falsch liege).
the more they change the more they stay the same
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also 10% der Django Community? 1% der Django Community? Ich stimme zwar auch zu, dass Django seine Schattenseiten hat (so finde ich die Templatesprache unzumutbar, aber man kann die auswechseln), dennoch für Anfänger ist die Struktur von Django ein großes Plus. Ich mein, der OP (no offense) wusste nicht dass es ORMs gibt. Wie lange würde es dauern bis der OP die Absicherungen gegen XSS, CSRF, Clickjacking etc entdeckt, die Django einfach so schon mitbringt?Dav1d hat geschrieben:Die Flask-Community würde ich nicht als klein bezeichnen, z.Z. befinden sich 273 Leute in #Pocoo auf Freenode, viele davon nutzen Flask (DasIch verbessere mich, wenn ich falsch liege).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Den Einwand verstehe ich nicht so ganz. Was ist daran lächerlich, ein Mikroframework zu benutzen, weil man die Aufgeblähtheit von Django vermeiden will, wenn die Aufgabenstellung diesen Umfang nicht erfordert?DasIch hat geschrieben:Klar hab ich die Funktionalität prinzipiell mit Django schon aber sich für ein Microframework zu entscheiden nur weil es kleiner ist, ist genauso lächerlich wie zu sagen es wäre sinnvoll Frameworks zu haben die nur aus einer Datei bestehen.
Wie schon gesagt: MFs gehen aber genau so auch für komplexere Projekte. Dann hat man sich meist bewusst für die Individualität des eigenen Zusammenstellens entschieden (oder bewusst für die angebotenen Extensions) oder aber das Projekt ist nach und nach auf Grundlage eines Mikroframeworks mitsamt zusätzlich eingebundener Bibliotheken gewachsen.
Mir ist halt nicht wirklich klar, worauf du hinaus willst...
Achso, und One-File-Frameworks (sprich: Bottle) haben zumindest den Vorteil, dass sie mal eben ins Entwicklungsverzeichnis kopiert, statt installiert werden können. Je nach Umgebung kann sowas manchmal wichtig werden. Ansonsten finde ich hinsichtlich der Übersicht, Wartbarkeit, Verständlichkeit des Codes usw eine Aufteilung in Module ebenfalls besser. Da geht Bottle halt seinen eigenen Weg. Die "Lächerlichkeit" dessen möchte ich aber bezweifeln.
Seh ich nicht als offense, keine Angst . Bin halt kein hauptberuflicher DB Entwickler oder Programmierer und habe mich noch nicht mit Frameworks beschäftigt....der OP (no offense) wusste nicht dass es ORMs gibt
Diverse Angriffsszenarien jedoch, kenne ich schon. Deren "Umschiffung" in Python jedoch, ist wieder ein anderes Thema .
Ich werfe hier mal ein: Django bringt diese Absicherungen mit. Als Anfänger bekommt man davon dann allerdings nichts mit. Einerseits gut, dass Django davor schützt, andererseits aber auch wieder nicht, da der Anfänger dann nicht weiß, wie er das abseits von Django zu handhaben hat.
Wenn die Thematik jedoch so komplex ist, dass ein Anfänger ohnehin damit komplett überfordert ist, dann macht das Django meiner bescheidenen Meinung nach richtig. Ich bin mittlerweile mitten im Tutorial. Es ist (für mich) schon eine gewaltige Umstellung, muss ich sagen.
Meine "Projekte" (wenn man das so nennen kann) waren in php nie so groß, dass man tatsächlich auf div. Frameworks zurückgreifen musste.
Beim Thema Sicherheit und PHP drehte sich mir dann der Magen um... Ich hab das damals (und es ist schon viel zu lange her) so lange exzessiv verfolgt, bis mir der Spaß daran vergangen ist. (Wer kann mit Sicherheit sagen, dass das Programm, Script etc. wasserdicht ist...?, ..hat man was übersehen, was ist, wenn etwas in die Hose geht...)
Schließlich und endlich bin ich dann von der idealistischen Idee, mir selbst ein CMS zu schreiben auf Joomla "umgestiegen" (Wieso das Rad neu erfinden...)
Ich glaube jedenfalls, dass in Zukunft (ein dehnbarer Begriff) python php überholen wird.
LG
Daniel
Zuletzt geändert von mcdaniels am Donnerstag 31. Mai 2012, 10:32, insgesamt 1-mal geändert.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
@mcdaniels: Du musst ja aber erst einmal Kenntnisse von allen möglichen Konzepten und Gefahren haben; als Anfänger kann man nicht alles auf einmal lernen. In der freien und "wilden" Mikro-Webframework-Welt musst Du also unmittelbar auch so etwas berücksichtigen, und gucken wie man sich mit gewählten Libs schützt, oder ggf. selber einen Schutz implementiert.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Ja genau! Habe oben noch etwas dazu geschrieben (edit) hatte sich überkreuzt.Du musst ja aber erst einmal Kenntnisse von allen möglichen Konzepten und Gefahren haben; als Anfänger kann man nicht alles auf einmal lernen.
Von daher gesehen mach dann Django sicher mehr Sinn!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, so transparent ist das ja nicht, wenn man die Dokumentation liest, dann steht da ja auch gegen was wie vorgegangen wird.mcdaniels hat geschrieben:Ich werfe hier mal ein: Django bringt diese Absicherungen mit. Als Anfänger bekommt man davon dann allerdings nichts mit. Einerseits gut, dass Django davor schützt, andererseits aber auch wieder nicht, da der Anfänger dann nicht weiß, wie er das abseits von Django zu handhaben hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich hab jetzt mal die ersten 2 Teile des Tutorial durch. Grundsätzlich verstehe ich es ja. Allerdings wäre ich nicht im Stande mit den erhaltenen Informationen - ohne immer wieder nachzusehen - etwas auf die Beine zu stellen.
Es stellt sich mir die Frage, ob ich nicht doch eher wieder zurück zu Konsolenapps wechseln sollte, bis ich das im Schlaf (und rückwärts) beherrsche... Ich kann mit Modulen, Funktionen und Klassen etc etwas anfangen, aber eventuell ist der Schritt im Moment doch etwas "überdimensioniert" für mich...
Ich komme mir bei den Beispielen in etwas so vor, wie wenn ein Pythoneinsteiger gleich mit Tkinter beginnt...
Das kann nicht gut sein
Es stellt sich mir die Frage, ob ich nicht doch eher wieder zurück zu Konsolenapps wechseln sollte, bis ich das im Schlaf (und rückwärts) beherrsche... Ich kann mit Modulen, Funktionen und Klassen etc etwas anfangen, aber eventuell ist der Schritt im Moment doch etwas "überdimensioniert" für mich...
Ich komme mir bei den Beispielen in etwas so vor, wie wenn ein Pythoneinsteiger gleich mit Tkinter beginnt...
Das kann nicht gut sein
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Damit hast du recht. Allerdings ist es doch oft so, das die Anforderungen wachsen. Dann will man doch was mit einer DB machen, dann doch Usereingaben (forms) nutzten... Man nutzt den Zusatz X, dann Y... und irgendwann hat man sich doch ein richtiges Framework zusammen gestellt.snafu hat geschrieben:Den Einwand verstehe ich nicht so ganz. Was ist daran lächerlich, ein Mikroframework zu benutzen, weil man die Aufgeblähtheit von Django vermeiden will, wenn die Aufgabenstellung diesen Umfang nicht erfordert?
Der Vorteil von Django gegenüber selbst zusammengestelltem Framework:
* Nur eine Doku
* Nur eine Community
Mittlerweile kann man auch unzählige zusätzliche Django Apps nutzten. In PyLucid hatte ich erst alles selbst machen wollen. Dann ein paar kleine Frameworks genutzt, dann Django und nun immer mehr externe Apps dazu. Mittlerweile ist das schon eine lange Liste: http://www.pylucid.org/en/download/package-info/
Nächstes Ziel ist aus PyLucid noch mehr einzeln nutzbare Apps zu extrahieren.
Wenn man natürlich auf externe Apps zurück greift hat man wieder mehrere Stellen für Doku/Community. Aber man hat auch mehr an Funktionalität...
Irgendwie bleib ich grade wieder hängen... Mir sind teilweise die Vorgehensweisen im Tutorial (ab Part 3 / 4 ist nicht klar). Will heißen, dass ich den Code nicht interpretieren kann. Dies wiederum lässt mich vermuten, dass ich mit Vollgas wieder retour zur Konsole sollte (Grundlagen wälzen), was allerdings eher langweilig ist. Vor allem deshalb, da ich mich nicht motivieren kannt etwas zu "basteln" (ideenlos...)
In Summe komme ich (wiedermal) nicht vom Fleck, was mich nicht grade positiv stimmt. Naturgemäß schwirren da wieder die Gedanken durch den Kopf, ob man nicht fürs Programmieren geschaffen sein könnte...
Irgendwas mache ich definitiv falsch!
LG
Daniel
In Summe komme ich (wiedermal) nicht vom Fleck, was mich nicht grade positiv stimmt. Naturgemäß schwirren da wieder die Gedanken durch den Kopf, ob man nicht fürs Programmieren geschaffen sein könnte...
Irgendwas mache ich definitiv falsch!
LG
Daniel
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Was wolltest Du denn in Sachen Webapp umsetzen? Das ganze HTML ist ja nur Darstellung - die Logik kann man ja auch getrennt davon umsetzen. Insofern könntest Du doch evtl. genau diese Idee mit einem CLI-Interface umsetzen.mcdaniels hat geschrieben: Vor allem deshalb, da ich mich nicht motivieren kannt etwas zu "basteln" (ideenlos...)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Na dann überlege Dir eben, welche Funktionalität es dafür braucht!mcdaniels hat geschrieben:Servus,
dachte da zuerst an etwas Einfaches zb ein Gästebuch.
- man braucht wohl irgend eine Datenstruktur, in der man alle für einen Eintrag benötigten Daten zusammen hält; also entweder ein Dictionary oder eine Klasse aus dem Bauch heraus.
- man will Einträge anzeigen lassen
- man will ggf. immer nur eine gewisse Anzahl anzeigen lassen ("Pagination")
- man muss diese Datensätze irgend wie speichern, also musst Du über Persistenz nachdenken. Das kann erst einmal über JSON gehen, oder Du gehst direkt über SQL (SQLite) oder gar eine NOSQL-DB...
- man will einen neuen Eintrag schreiben
- man will ggf. einen löschen dürfen
Das ist doch alles wunderbar ohne "Firlefanz" als simple CLI-App machbar! Imho ähnelt das doch den klassischen Beispielen von Telefonbuch- oder Adressbuch-Programmen, die Anfänger immer gerne implementieren.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert