2010-09-05 14 views
20

Ich habe ein Projekt im Sinn, das es lohnt, endlich ins Programmieren einzusteigen.Django, Turbo Gears, Web2Py, was ist besser für was?

Nach dem Lesen einer Menge Sachen, hier und anderswo, bin ich dabei, Python zu machen, den ich für jetzt lerne, über C# oder Java. Was mich am meisten überzeugt hat, waren Paul Grahams Exkursionen zu Programmiersprachen und Lisp, obwohl Arc gerade in der experimentellen Phase ist, was mir nicht helfen würde, diese Web-App jetzt zu machen.

Als für Web-App schnell, habe ich Django, Turbo Gears und Py2Web ausgecheckt. Obwohl ich viel Zeit mit Lesen verbracht habe, habe ich immer noch keine Ahnung, welchen ich verwenden sollte.

1) Django hat sicherlich die schönste Online-Präsenz, und ein schön gemacht Vor-Ort-Tutorial, sie wissen, wie man ihr Ding zeigen.

2) Web2Py hat mich mit seiner no-install-benötigt angezogen und der Anspruch Django kompliziert aussehen zu machen. Aber wenn du auf ihrer Website herumwirfst, findest du schnell Inhalte, die seit Jahren nicht mehr mit defekten externen Links aktualisiert wurden ... Es gibt Geister auf dieser Website, die jemanden, der sich nicht mit der Problematik des Projekts vertraut machen kann, wenn es flach ist.

3) Turbo Gears ... Ich denke, es ist auch modular. Leute, die darüber geschrieben haben, liebten es ... Ich konnte nichts Bestimmtes finden, was es über Django besonders machen würde.

Ich habe mich noch nicht für eine IDE entschieden, obwohl ich hier alle Antworten auf den Intellisense Code Completion Post gelesen habe. Das Anzeigen zusätzlicher Code-Snippets wäre für Noobs wie mich auch cool, aber ich nehme an, ich sollte zuerst meine Web-Frame-Arbeit auswählen und dann einen Editor auswählen, der gut damit arbeitet.

Da wahrscheinlich kein Rahmen ist zweifellos das beste an allem, werde ich einige Besonderheiten auf, die App geben will ich bauen:

Es wird MySQL verwenden, braucht es Registrieren/Log-in, und es wird eine Last von einfachen mathematischen Operationen auf Daten von Eingabe- und SQL-Abfragen. Ich habe einen funktionsfähigen Prototyp in Excel fertiggestellt, also weiß ich genau, was ich bauen will, was mir hoffentlich helfen wird, meine Noobness zu überwinden. Ich werde eine kleine App sein, nichts großes.

Und ich will keine HTML sehen, während es

PS bauen ;-): dank der Menschen Stackoverflow läuft, diesen Ort gefunden zu genau im richtigen Moment!

+1

Ich glaube, Sie haben sich die falsche Seite für web2py angesehen. Es ist http://web2py.com. Uns sind keine fehlerhaften Links bekannt und wir veröffentlichen durchschnittlich alle zwei Wochen eine neue Version. Wenn eine neue Version veröffentlicht wird, wird die gesamte Website aktualisiert. – mdipierro

+1

Ich denke, ich habe herausgefunden, was passiert ist: Einer der kostenlosen Download-Links auf der neuen Seite hat mich auf die alte Seite gebracht, ohne dass ich es merkte - und da die alte Seite natürlich nicht auf dem neuesten Stand ist. – Tsais

+0

Ihr Handbuch ist eine ausgezeichnete lesen, genießen Sie jede Seite davon ... – Tsais

Antwort

19

Sie sollten sich die web2py Online-Dokumentation (http://web2py.com/book) ansehen. Es ist mit einer rollenbasierten Zugriffssteuerung (dem allgemeinsten Zugriffssteuerungsmechanismus) ausgestattet und es ist sehr granular, Sie können den Zugriff für bestimmte Vorgänge auf bestimmte Datensätze gewähren. Es kommt mit einer Web-basierten IDE, aber Sie können auch WingIDE, Eclipse und PyCharm verwenden. Es kommt mit Helper-System, mit dem Sie HTML generieren können, ohne HTML zu verwenden. Hier ist ein Beispiel für eine komplette Anwendung, die Benutzer erfordert registrieren/Login/Post-Nachrichten:

db.define_table('message',Field('body'),Field('author',db.auth_user)) 
@auth.requires_login() 
def index(): 
    db.message.author.default=auth.user.id 
    db.message.author.writable=False 
    return dict(form=crud.create(db.message), 
       messages=db(db.message.id>0).select()) 

Das web2py Projekt sehr aktiv ist, wie Sie aus der Liste der Änderungen http://code.google.com/p/web2py/source/list

sehen Wenn Sie web2py verwandte Fragen Ich schlage vor, dass Sie der web2py Mailingliste beitreten: http://groups.google.com/group/web2py/topics

Wir sind sehr aktiv und Ihre Fragen werden sehr schnell beantwortet werden.

+0

Ich war immer bereit, Django heute zu installieren, aber nachdem ich ein PDF mit einem Funktion für Funktion Vergleich mit Codebeispielen gefunden hatte, ging ich zu Ihren Links, und ich bin ziemlich zu dem Schluss gekommen, dass Web2py das Modernste des Web Frameworks ist . Vor allem für jemanden, der neu in der Programmierung ist, ist es super schön, wenn die Sicherheit für mich behandelt wird, und ich habe immer nützliche Standardeinstellungen in der Software gemocht. – Tsais

+0

Auch ein paar gut bevölkerte Community-Sites gefunden, so bin ich zuversichtlich genug, um mit dem Feature-Set, das ich mag, zu gehen. Mein Verständnis von dem, was wichtig ist, ist im besten Fall unvollständig, aber man hat nie mehr als das aktuelle Verständnis, um Entscheidungen zu treffen ;-) Also vielen Dank für deine Antwort, ich poste dies, während ich eine kurze Pause mache Handbuch ^^ – Tsais

+0

Fühlen Sie sich frei, die Mailing-Liste oder mich persönlich für Fragen und Beratung. – mdipierro

4

Ich habe positive Erfahrungen mit Django gemacht.

  • Integrierte Authentifizierung und einfache Erweiterungen verwenden für registration
  • Sehr gute Dokumentation
  • Sie wahrscheinlich schreiben meist Ihre HTML-Templates in base.html, dann nur Vorlage Vererbung (Anmerkung: Sie müssen schreiben müssen zumindest ein bisschen HTML)
  • Im Gegensatz zu Turbogears ist Django mehr "out-of-the-box"
  • Ich habe keine Erfahrung mit web2py, aber von meinem Eindruck, versucht es zu tun ein wenig zu viel "out-of-the-box"
+0

aus dem Django-Tutorial, es schien, ich kann nur einige Standardvorlagen in meinem App-Pfad kopieren und damit fertig sein, bis die eigentliche Anwendung abgeschlossen ist. Und dann bekomme ich vielleicht einen unerklärlichen Drang, die Vorlage neu zu gestalten ...? – Tsais

+0

Sie können es versuchen. Aber auch HTML ist nicht so schwer. – miku

1

Wenn Sie bei der Erstellung kein HTML sehen möchten, können Sie Django vergessen.Es konzentriert sich nicht auf "point-click-done", sondern konzentriert sich auf die Pros, die in kürzester Zeit vom Konzept zur Produktion gehen. Die hierarchische Natur der Vorlagensprache kann zu einigen sehr sauberen allgemeinen Seitenlayouts führen. Ich benutze Django für alle meine größeren Websites und ich liebe es.

Obwohl es in PHP, nicht in Python geschrieben ist, könnten Sie sich die neue Version von WordPress ansehen, die vor 2 oder 3 Monaten herauskam. In 3.0 sind sie weit davon entfernt, eine "nur Blogs" -Umgebung zu sein, und es gibt Tonnen von vorgefertigten Vorlagen dafür. Natürlich, wenn Sie eine Vorlage optimieren wollen, nun, da ist wieder dieses widerliche alte HTML. Ich denke darüber nach, es für meine kleineren Kunden zu verwenden, die nicht mit dem Admin eines dedizierten Servers usw. umgehen können, der dazu neigt, mit einer Django-Site zu kommen.

Update: Ah, ich habe den Halb-Witz verpasst - ich war zu früh dran und das neigt dazu, mich taub für Humor zu machen. Soweit ich Templates von bestehenden Sites verwende, habe ich das ziemlich erfolgreich mit ein paar Sites gemacht, sowohl mit denen, die statisch waren als auch mit denen, die ursprünglich von gut geschriebenen PHP-Skripten gesteuert wurden. Ich empfehle ein sorgfältiges Lesen der {% extends %} und {% include %} Dokumente. Beide nehmen entweder einen String-Literal oder eine Variable. Ich habe die spätere Methode verwendet, und sie kann für eine Site nützlich sein, die eine starke Hierarchie aufweist, die sich durch Stiländerungen über Zweige unterscheidet.

Es ist auch die Zeit wert, um die Suchreihenfolge für Vorlagen zu verstehen - es kann zu einem guten Zweck verwendet werden, aber es kann rätselhaft sein, wenn Sie es nicht grok. Sehen Sie die Vorlage-bezogenen Elemente in der Datei settings.py für diese und andere nützliche Goodies.

+0

Ich war halb Witze über den No-HTML-Kommentar ... Ich kann HTML in meinem Schlaf schreiben, war immer die Photoshop/Vorlage Person für die Arbeit. Ich bin einfach nur aufgeregt, dass es so aussieht, als ob Django mir die Verwendung von Standardvorlagen erlauben würde. Ich kann mich also nur darauf konzentrieren, die Datenbank- und mathematischen Funktionen zu schreiben, wenn ich mir nicht die Mühe mache, mit den Looks herumzuspielen. Automatisierte kollabierende Feldsets schienen genug Layout-Kontrolle zu sein. – Tsais

+0

danke für die zusätzlichen Tipps, es ist nicht immer einfach zu wissen, was zu lesen und zu verstehen zuerst ... – Tsais

+0

Wenn Sie WordPress in Instant Press (in web2py geschrieben) schauen möchten: http://code.google.com/p/ Instant-Press/ – mdipierro

2

Wenn Sie sich für Django entscheiden, stellen Sie sicher, dass Sie die Generischen Ansichten verwenden. Sie werden Sie davor bewahren, viel Code zu schreiben, sowohl Python als auch HTML.

Wenn Sie keinen besonderen Grund haben, MySQL zu verwenden, rate ich Ihnen, zu PostgreSQL zu wechseln. Django ist viel mehr auf PostgreSQL ausgerichtet und es ist sowieso eine viel bessere Datenbank.

Die Online-Django-Dokumentation ist großartig, das unterscheidet sie von allen anderen Frameworks. Ich empfehle auch das Buch Practical Django Projects von James Bennett

+0

Warum wird das heruntergeregelt? – Ben

+0

yeah, definitiv, ihre generischen Ansichten haben einige ziemlich nette Eigenschaften! – Tsais

+0

War ich nicht, ich kann nicht wählen, bis ich 15 Punkte bekomme ... vielleicht hat jemand einen Fehler gemacht? Ich denke, Ihre Antwort ist vollkommen hilfreich und ich gebe Ihnen ein +, sobald ich kann ... Ich möchte Sie fragen, warum Sie PostgreSQL besser als MySQL mögen. Ich fragte mich, ob es immer noch eine gute Idee war, MySQL zu benutzen, jetzt da Larry es besitzt. Mein Hauptgrund, bis jetzt bei MySQL zu bleiben, ist, dass die meisten Hosting-Unternehmen es installiert haben, und es gibt viele Open-Source-Tools dafür.Obwohl ich Web2Py betrachte, könnte ich das ziemlich gut verwenden, um alle unterstützten Datenbanken zu verwalten, einschließlich PostgreSQL ... – Tsais

2
  • Django: Gehört es hat die beste administrative Schnittstelle. Aber verwendet sein eigenes ORM, d. H. Verwendet keine SQL-Alchemie.

  • Web2py: Habe das nicht recherchiert.

  • Turbogears2: SQL-Alchemy standardmäßig verwendet, verwendet Catwalk für den Admin Schnittstelle, aber Dokumentation ist nicht so groß.

ich Turbogears2 gewählt, weil es populär Komponenten verwendet, so dass ich nicht etwas Neues lernen musste ...

+4

Soweit ich in der Zwischenzeit gefunden habe, sollten Sie Web2Py recherchieren, es scheint keine hässlichen Abkürzungen zu nehmen, die Sie später beißen könnten. Nur ein paar vernünftige Standardwerte, und Sie haben die Kontrolle über alles auf eine Art und Weise: Sie können Ihren SQL-Code erzeugen lassen und ihn zeigen oder nicht, oder Sie können einfach Ihren eigenen schreiben. Alles, was es tut, kannst du außer Kraft setzen. Ich denke, es ist nicht nur das neueste, es ist tatsächlich mit den Vor- und Nachteilen älterer Frameworks gedacht, was es zu einem soliden technologischen Fortschritt macht. – Tsais

6

Ich habe nicht besonders versierten Entwickler zu sagen, die Geschwindigkeit, mit der ich in der Lage gewesen mit web2py zu erstellen, hat mich umgehauen. Zum großen Teil aufgrund der erstaunlichen Gemeinschaft und des Kernwertes hat Massimo den Rahmen zugänglich gemacht.

Als ich anfing, I 0 Zeilen Code in Python geschrieben hatte nie von web2py gehört

Ich habe ernsthaft für etwa einen Monat bei ihm gewesen und sind so weit fortgeschritten (in meiner gewohnten Art und Weise) von Fragen zu stellen, dass keine man könnte (weil sie keinen Sinn ergaben) stundenlang programmieren, ohne ein Buch aufzuheben oder eine Frage zu stellen.

Ich bin wirklich beeindruckt.

2

Ich habe sowohl web2py als auch RoR ausgiebig verwendet, und während RoR in den letzten Jahren eine Menge Popularität und Unterstützung bekommen hat, ist web2py einfacher, sauberer, weniger "magisch" und bietet auch mehr (nützlich) Out-of-the-Box-Funktionalität. Ich würde sagen, dass web2py mehr Potenzial als RoR hat, aber es ist ein relativ neues Framework und hat noch nicht die Reife von RoR. (Trotzdem würde ich jeden Tag web2py über RoR wählen ...)