2012-10-08 10 views
92

Ich möchte den Web-Entwicklungspfad nehmen und eine Karriere als Web-Entwickler mit Python haben und wirklich lernen wollen Django, weil es ein Full-Stack-Web-Framework ist und für mich bei der Suche nach einem Job als Web vorteilhafter sein wird Entwickler.Flask oder Django für einen Anfänger?

Aber ein Freund sagte mir, mit Flask zu beginnen, da es einfacher ist, und mir helfen wird, wenn ich anfange, Django zu lernen, da Django komplizierter ist als Flask. Also wird Flask Dinge für mich erleichtern, wenn ich anfangen Django zu lernen.

Also sollte ich mit Flask anfangen, wissend, dass ich irgendwann Django lernen werde? Oder fang einfach an Django zu lernen?

+2

Ich habe ein Arbeitsblatt erstellt, um anderen Entwicklern zu helfen, zwischen Flask und Django zu entscheiden. Sie können durchgehen und erhalten ein "Ergebnis" der besten Rahmen zu verwenden: https://wakatime.com/django-vs-flask-worksheet –

+1

Ich weiß es eine alte Frage, aber das wird sicherlich Anfänger wie uns helfen [ Django VS Flask] (https://www.youtube.com/watch?v=zGqmRbkukk8) – Suresh2692

Antwort

1

Sie sollten anfangen, mit beiden zu spielen und die verwenden, die Sie mögen, wenn Sie nicht verpflichtet sind, eine zu verwenden. Beachten Sie auch, dass das Lernen eines der beiden es wahrscheinlich leichter macht, den anderen zu lernen.

12

IMHO würde ich direkt für Django gehen. Es kann sehr schwierig sein, für eine einfache App oder Website zu lernen, aber ich würde sagen, dass die Menge an Unterstützung und Dokumenten, die online zur Verfügung stehen, bei weitem jedes andere Python-Web-Framework überwiegt.

Auch, wie Sie sagen, Django ist ein echter Weltgebrauchsrahmen. Wenn du vorhast, das zu benutzen, könnte es Zeitverschwendung sein, etwas anderes zu lernen und es dann zu verlernen, Django zu lernen. (wie jede Verschiebung der Technologie beinhaltet einige verlernen)

Dies ist alles subjektive und nur meine Meinung.

15

Flask ist ein Mikro-Framework, aber das macht es nicht einfacher.

Es macht einfach nicht viele Annahmen über das Ökosystem/Bibliotheken , die Sie verwenden werden. Es überlässt es dir.

Welche wiederum, ich denke, das bedeutet, dass es an viel erfahrenere Entwickler gerichtet ist.

Django hat eine steilere Lernkurve, weil, wie Sie sagten, es Full-Stack ist. Es erzwingt auf Sie ein eigenes ORM, Form-Framework, etc. Aber es abstrahiert eine Menge Komplexität, mit der Sie sonst umgehen müssten.

Ich stimme Daniel zu. Ich würde direkt nach Django gehen, wenn ich in deiner Position wäre.

145

Ich würde empfehlen, dass Sie mit Flask beginnen. Mit Flask schreiben Sie explizit Ihre eigenen Routenfunktionen, machen Ihre Routen-Render-Vorlagen usw. und verwenden dabei Python-Funktionen, die Sie bereits kennen. Es gibt wenig "Magie". Sie können genau sehen, wie alles geschieht und verstehen, warum es passiert. Flask Dokumentation ist auch ziemlich nett und prägnant, so dass Sie es lesen und Flask in ein paar Stunden lernen können, verbringen mehrere Abende lernen, um eine vollständige Bewerbung zu machen, und dann weiter nach Django. Die Zeitinvestition ist gering, es wird dir eine gute Vorbereitung für Django geben, und du wirst von einem großartigen Mikro-Framework erfahren haben. Ich entwickle manchmal Prototypen in Flask, bevor ich sie in Django baue.

Django, während es voll ausgestatteter ist, hat eine bestimmte Struktur und Konventionen, so dass es für einen Anfänger etwas mysteriöser sein kann, herauszufinden, wie alles zusammenpasst. Wenn Sie neu in der Webentwicklung sind, haben Sie vielleicht etwas Verwirrung darüber, ob Sie etwas tun, weil es eine Webentwicklungskonvention ist oder ob Sie es tun, weil es Teil der Django-Konventionen/Organisation ist.

Wenn Sie ein paar Tage oder eine Woche mit Flask spielen können, bevor Sie weitermachen, um Django zu lernen (Ihr ursprüngliches Ziel), denke ich, dass es die Zeit wert ist. Beide sind großartige Rahmenbedingungen. Willkommen in der Welt der Web-Entwicklung.

+4

Hmmm, ich habe schon im Django angefangen. Ich habe einige dynamische und statische Seiten erstellt, und ich begann, die Dinge darin gut zu verstehen. Haben Sie also einen Link, der erklärt, was unter der Haube passiert, anstatt Flasch zu lernen? Weil du eine Art überzeugender Redner bist: D –

+1

Ich habe leider keine unter der Haube stehende Zusammenfassung von Django. Eine Sache, über die neue Entwickler oft verwirrt sind, ist wie Routing funktioniert. Hier ist die Beschreibung für Django Routing https://docs.djangoproject.com/en/dev/topics/http/urls/ und hier ist die Beschreibung für Flask Routing http://flask.pocoo.org/docs/quickstart/#routing Es klingt, als hättest du bereits einen guten Start auf Django gemacht. Schau dir das Django Tutorial an, wenn du es noch nicht getan hast - es ist ziemlich anständig. – dghubble

+3

@dghubble Vielen Dank für Ihre gut durchdachte, gut geschriebene Antwort. Ich weiß, dass diese Frage als "nicht konstruktiv" geschlossen wurde, aber ich muss dir sagen, dass deine Antwort mir geholfen hat, herauszufinden, was Flask ist und wie ich Dinge angehen könnte, die sich auf Python als meine primäre Webdev-Sprache beziehen. Du schaukelst! :-) –

6

Also, ich bin mir nicht sicher, dass Sie hier Äpfel mit Pommes vergleichen. Ich bin ein erfahrener Django-Benutzer und habe gerade begonnen, Flask zu benutzen. Die Philosophie von Django war von Anfang an, dass es ein Rahmen für Batterien sein sollte, während Flask ein Ansatz ist, bei dem man seine Batterien selbst finden kann. Die Frage ist, wollen Sie einen Rahmen haben, den Sie vorerst brauchen, um zu lernen, wie man reichhaltige Webseiten erstellt, oder wollen Sie einen Rahmen, der nur die Grundlagen ist und Sie bequem sind, die Optionen da draußen abwägend für all die Schrauben und Muttern?

Darüber hinaus geben Sie an, dass Sie eine Karriere in der Webentwicklung und eine Toolbox dazu suchen. Ich finde, dass Arbeitgeber heute oft nur von Django gehört haben. Jemanden zu überzeugen, dich und dein Go-to-Framework zu beschäftigen, ist Flask vielleicht ein noch härterer Verkauf.

Meine 2Cents wären, in Django stecken zu bleiben und einige unkomplizierte Seiten zu erstellen (Umfragen, Blog usw.). Wenn Sie sich wohl fühlen, gehen Sie zurück und bauen Sie sie wieder mit Flask. Am Ende ist alles Python.

25

Ich hatte die gleiche Situation, als wollte ich versuchen Python für Web-Entwicklung :) Und ich ging mit Django. Während es manchmal schwierig ist, all die Magie hinter Django zu verstehen, ist es schön und voller sehr hilfreicher Dinge. Wenn Sie ORMs mögen, dann hat Django einen guten. Es hat auch Admin-Panel. Generic Views ist auch eine gute Sache :) Grundsätzlich ist es sehr schön Rahmen und wenn Sie Ihre erste App online laufen, wird die Entwicklung der zweiten Spaß machen :)

Aber nach einiger Zeit habe ich Flask gefunden. Und jetzt arbeite ich damit. Warum? Weil ich manchmal Dinge selbst bauen und erschaffen möchte, möchte ich lernen und wissen, wie die Dinge funktionieren. Flask ist eine minimalistische Sache und du wirst alle "Magie" erschaffen, die Django bereits hat. Ich bin froh, dass ich mit Django angefangen habe, nur weil ich jetzt einige Prinzipien in meinen Flask-Apps verwenden kann. Flask hat weniger Benutzer, aber bisher war es keine große Sache für mich. Es hat auch Erweiterungen, die dir schon bei einigen Sachen helfen. Und während ORM nicht so tief wie in Django eingebaut ist, mag ich das, weil ich ORMs hasse (nenne mich altmodisch, aber ich denke immer noch, dass roher SQL in meinen Fällen viel effektiver ist).

Beste Sache wäre, beide zu versuchen und wählen Sie die, die Sie mögen. Erfahrene Leute können Ratschläge geben, dass einer besser ist als ein anderer, aber ich würde sagen - versuchen Sie es! Wenn Sie sehen, dass Sie mit Django die Beine brechen, wird Flask vielleicht helfen. Oder andersherum.

Viel Spaß!

+0

Das Django Admin Panel hat Vorteile (CRUD out of the box) und Nachteile ("hides" code). Ich denke, Flask und Django sind großartig, also stimme ich Ignas zu. – Timo

Verwandte Themen