"Best Practice" mit Flask

Django, Flask, Bottle, WSGI, CGI…
Antworten
jensmaul
User
Beiträge: 5
Registriert: Montag 28. Mai 2012, 08:20

Hallo erstmal, ich bin jens. Ich lerne seit ein paar Wochen Python und möchte eine Webseite damit erstellen. Ich habe mich ein wenig umgesehen und am besten gefällt mir Flask. Ich habe auch schon ein wenig herum experimentiert. Wo ich allerdings Probleme habe ist die erstellung einer vernünftigen Grundstruktur, also "was kommt am besten wohin".

Ich meine jetzt keine vorgefertigte Demo App, die man einfach nur umstricken muss. Die hab ich selber schon gemacht. Ich meine damit vor allem die Verzeichnis Grundstruktur. Welche Information legt man in welche Datei? Wie legt man die Konfiguration richtig an? Wie macht man am besten die MVC Aufteilung mit den Blueprints? Macht man das überhaupt?

Ich hab einfach das Gefühl, früher oder später in eine Sackgasse zu rennen und will vorbeugen. Einfach ein "Best Practice" für den grundlegenden Aufbau. Ich weiß, dass voel davon schon in der Doku beschrieben ist, ich bekomme es aber nicht sinnvoll zusammen in ein Projekt
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hallo und Willkommen im Forum,

leider kann ich zu Deinem ersten Post nur sagen: Und nun? :K

Du schreibst, dass Du wohl die Doku kennst, diese Infos aber nicht sinnvoll zusammen bringen kannst. Also fehlt Dir wohl Verständnis. Hier bleibt aber die Frage: wie sollen wir Dir dabei helfen? Ohne *konkrete* Fragen, z.B. zu einem Projekt von Dir, kann man da wenig zu sagen.

Sofern Du selber noch nichts angelegt hast und ergo keine konkrete Frage stellen kannst, so schlage ich drei Sachen vor:

1.) Leg erst einmal los und schau, ob Du irgend wann an eine Grenze stößt. Wenn das passiert, *verstehst* Du ja, was schief gelaufen ist und versuchst dann noch mal mittels der Doku zu kapieren, wie Armins Gedankengänge zur Gliederung von Projekten zu verstehen sind.

2.) Du schaust Dir mal Projekte auf `flask`-Basis an und versuchst nachzuvollziehen, wie diese ihre Gliederung umgesetzt haben

3.) evtl. schaust Du Dir doch noch mal Django für den Anfang an - das macht einem mehr Vorgaben, insbesondere zur Strukturierung, was für Dich ggf. leichter umzusetzen ist.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Das flaskr Tutorial in der Flask Dokumentation entspricht den "best practices", bei allem was darüber hinaus geht bist du recht flexibel, was schliesslich auch der Vorteil gegenüber Frameworks wie Django ist. Wenn du mehr wissen willst musst du, wie Hypersion schon gesagt hat, konkreter werden.

MVC ist als Pattern für Webanwendungen übrigens nur begrenzt zu empfehlen, üblicherweise verwendet man einen Model-View-Template (MVT) Ansatz, da unterscheidet sich Flask von Django nicht sonderlich.
jensmaul
User
Beiträge: 5
Registriert: Montag 28. Mai 2012, 08:20

>Du schreibst, dass Du wohl die Doku kennst, diese Infos aber nicht sinnvoll zusammen bringen kannst. Also fehlt Dir
>wohl Verständnis. Hier bleibt aber die Frage: wie sollen wir Dir dabei helfen? Ohne *konkrete* Fragen, z.B. zu einem
>Projekt von Dir, kann man da wenig zu sagen.
ich weiß, ist eine schwammig gestellte Frage. Wie gesagt lerne ich erst seit ein paar Wochen Python.

>2.) Du schaust Dir mal Projekte auf `flask`-Basis an und versuchst nachzuvollziehen, wie diese ihre Gliederung umgesetzt haben
Bis auf flaskr hab ich leider noch nicht wirklich was gefunden.

>3.) evtl. schaust Du Dir doch noch mal Django für den Anfang an - das macht einem mehr Vorgaben, insbesondere zur
>Strukturierung, was für Dich ggf. leichter umzusetzen ist.
Ich habe mir Django schon angeschaut. Mir sind die Unterschiede schon klar. Ich habe mich ja bewusst für Flask entschieden. Ich will ja wie gesagt gar keine "klick klick fertig" Software wie Django. Ich will jetzt auch gar nicht wissen, wie man mit Flask Datenbanken verwendet usw.

Es geht nur um den Grundaufbau, vor allem der Verzeichnisstruktur, im Allgemeinen. Ich würde zum Beispiel mit einem "root" Verzeichnis anfangen. Darin befindet sich die runserver.py für Testzwecke, die wsgi Datei für den Server, ein Verzeichnis mit der eigentlichen Anwendung, eins für Unittests und eins für Doku.

Code: Alles auswählen

root
|- runserver.py
|- app.wsgi
|- /app
|  |- __init__.py
|- /unittest
Das würde ich jetzt gerne noch verfeinern. Zum Beispiel, wie man da jetzt Blueprints verwendet (also wofür man Blueprints genau einsetzt und ob man für jedes ein Unterverzeichnis anlegt oder nur jeweils eine Datei) usw

Ich weiß, dass man das relativ flexibel behandeln kann, aber es sollte doch sowas wie ein "Best Practice" für den Durchschnitt geben, an dem man sich mal orientieren kann
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Wenn du noch nicht einmal weisst wofür man blueprints einsetzt kannst du blueprints ignorieren.
jensmaul
User
Beiträge: 5
Registriert: Montag 28. Mai 2012, 08:20

Ich weiß schon in etwa, wofür man sie verwendet. Ich weiß nur nicht, was sinnvoll ist. Ein paar Beispiele würden mir da einfach helfen.

Wo finde ich denn Flask Projekte, die über "Flaskr" hinaus gehen?
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

MoinMoin 2.0 wäre ein Beispiel für ein recht großes Flask Projekt.
jensmaul
User
Beiträge: 5
Registriert: Montag 28. Mai 2012, 08:20

DasIch hat geschrieben:MoinMoin 2.0 wäre ein Beispiel für ein recht großes Flask Projekt.
Aufschlussreich, danke
Antworten