Welches dieser beiden Frameworks eignet sich besser für Entwickler mit 11 Monaten Erfahrung? Ich habe mich entschlossen, Python für meine serverseitige Codierung zu lernen und wollte wissen, welche davon für jemanden mit meinen Fähigkeiten besser geeignet ist. Ich habe gerade ein paar Tage damit verbracht, mit web2py herumzuspielen und es wirklich zu mögen, und ich frage mich, ob Django etwas mehr bietet, das ich verpasse?
PS. UPDATE: Vielen Dank für die wundervolle Eingabe, nachdem ich drei Django-Bücher gekauft und ein paar kleine Projekte / Tutorials für Django und web2py durchgearbeitet habe, habe ich mich für web2py entschieden. Dies ist ein wunderbares Framework, mit dem die Webentwicklung für Neulinge wirklich Spaß macht. Ich würde allen Neulingen empfehlen, dieses Framework zu lernen, da es in Zukunft Mainstream sein wird. Django ist auch ein wunderbares Framework, aber web2py ist meiner Meinung nach nur begrenzt besser.
Antworten:
(Haftungsausschluss: Ich bin der Projektleiter für web2py)
Django ist ungefähr 5 Jahre länger als web2py, daher gibt es mehr Benutzer und mehr Anwendungen, die man vorführen kann. Django hat das, was sie "admin" nennen, was nicht dasselbe ist wie "admin" von web2py, sondern eher "appadmin" von web2py. Djangos "admin" ist besser und anpassbarer als web2pys "appadmin". Django hat nicht das Äquivalent zu web2pys "admin". (Entschuldigung für die Namensverwirrung).
web2py ist kompakter und bietet sofort mehr Funktionen (mehr unterstützte Datenbanken, webbasierte IDE, Ticketing-System, läuft auf GAE ohne Patches, mehrere Anmeldemethoden, rollenbasierte Zugriffskontrolle, webbasierte Übersetzungsschnittstelle, Unterstützung für mehrere Datenbankverbindungen, verteilte Transaktionen und mehr).
Für mich ist die wichtigste Funktionalität von web2py die automatische Migration. Django stellt sie nicht sofort zur Verfügung.
Für web2py ist langfristige Abwärtskompatibilität neben Sicherheit ein vorrangiges Ziel. Django ist in Bezug auf die Sicherheit mit web2py vergleichbar (mit der Ausnahme, dass web2py zuvor CSRF-Verhinderung und Standard-Escape in Vorlagen hatte), aber Django brach die Abwärtskompatibilität, als 1.0 veröffentlicht wurde. web2py hat es seit Oktober 2007 nie mehr getan.
Für mich ist die web2py-Syntax natürlicher:
Mir sind keine Funktionen von web2py bekannt, die in Django nicht vorhanden sind. Ich habe diese Frage oft gestellt, weil wir sie gegebenenfalls zu web2py hinzufügen möchten, aber ich habe noch keine zufriedenstellende Antwort erhalten.
Natürlich gibt es Dinge, die wir beide tun, aber unterschiedlich. Django folgt "explizit ist besser als implizit". web2py tut dies nicht und folgt stattdessen "Alles sollte ein Standardverhalten haben". Ich glaube, dies macht den web2py-Code und die Konfiguration kompakter.
Wie auch immer Sie sich entscheiden, beide sind gute solide Web-Frameworks und es gibt weniger Ähnlichkeiten als Unterschiede. Die Entwickler von Django sind sehr kluge Leute.
Die web2py Community ist sehr freundlich. Versuchen Sie als Experiment, eine Frage in der web2py-Google-Gruppe und in der Django-Gruppe zu stellen.
quelle
db(db.tablename.fieldname <= value).select()
"), da es nicht wie Python aussieht (der Teil in Klammern weist keinem der Parameter einen Wert zu, sondern übergibt nurTrue
/False
). Ist es Standard für web2py oder ist der von Ihnen bereitgestellte Code nur eine vereinfachte Version des realen web2py-Codes? Vielleicht sollte der Teil in Klammern in Anführungszeichen gesetzt werden? Bitte erkläre.Sowohl Django als auch web2py sind hervorragende Full-Stack-Webframeworks mit ähnlichen Funktionen und Fähigkeiten - Sie werden als Anfänger mit beiden Frameworks nicht viel verpassen.
Es ist schwierig, Ihre Frage zu beantworten, ohne mehr darüber zu wissen, was Sie mit Ihrem Lernen anfangen möchten. Einige würden sagen, dass die Gefahr besteht, das Framework und nicht die Sprache zu lernen . Daher ist es möglicherweise am besten, zuerst ein tieferes Verständnis der Python-Sprache und der leichteren Frameworks (z. B. Flask oder Wekzeug ) zu erlangen .
Trotzdem hat web2py eine niedrigere anfängliche Lernkurve als Django, da es speziell als Lernwerkzeug entwickelt wurde . Ich würde also sagen, Sie haben eine gute Wahl getroffen. Kein Lernen wird jemals verschwendet und wenn Sie sich entschieden haben, in Zukunft etwas anderes zu benötigen, werden die guten Techniken, die Sie mit web2py gelernt haben, nicht verloren gehen.
Obwohl es für Django mehr Lernressourcen gibt, da es schon länger existiert und mehr Benutzer hat, ist das Lernen von web2py aufgrund des hervorragenden Buches und der fast sofortigen Beantwortung von Fragen zur Benutzergruppe auch schnell .
Wenn Sie einen Job suchen, gibt es mehr Django-Jobs, so dass dies ein Faktor sein könnte. Allerdings hat die web2py-Community kürzlich Experiments4-Lösungen eingerichtet, mit denen Sie Ihre Fähigkeiten und Verfügbarkeit in Zukunft fördern können.
Habe Spaß!
quelle
Ich bin sowohl mit Web2py als auch mit DJango ein absoluter Neuling, aber ich wollte ein pythonisches Webframework, mit dem ich spielen, lernen und ein Frontend für eine einfache Datenbank erstellen kann. Ich habe mir web2py angesehen, konnte aber keine anständigen Tutorials finden, die sich an Neulinge richteten. Als ich web2py installiert habe, war das sehr einfach. Ich wusste nicht, was ich als nächstes tun sollte. Es schien keine Tutorials zu geben, die mich weiterführten wie man eine einfache Web-App erstellt (nicht nur Hallo Welt). Auf der anderen Seite hat DJango Ihre erste DJango App Teil 1 geschrieben . Dies war wirklich gut und gab einem Neuling eine Einführung in die Einrichtung und Verwendung des Frameworks durch Schreiben einer einfachen Web-App. Bis Web2Py dies anbietet, geht meine Stimme an DJango.
quelle
In vielen Worten: (wie ich verstanden habe)
Web2py ist definitiv einfacher und macht den Code einfacher und sauberer. Aber Django gibt Ihnen ein besseres Verständnis dafür, was los ist, und mehr Möglichkeiten, das Design / den Prozess zu ändern.
Web2py konzentriert sich mehr auf "einfach ist besser als komplex", aber Django konzentriert sich mehr auf "explizit ist besser als implizit". Zwei Teile des Zen of Python, daher ist es sehr schwer zu sagen, welches Framework mehr pythonisch ist.
quelle