it-swarm-eu.dev

Was ist ein gutes leichtes Python MVC-Framework?

Ich weiß, es gibt eine Menge von Python Frameworks da draußen. Könnt ihr mich in die richtige Richtung lenken? Mein Hauptanliegen ist die Einfachheit, ich brauche nicht viele fremde Funktionen ein paar andere Dinge, die ich möchte (oder nicht möchte):

  • oRM ist mir egal, ich möchte nur, dass es mit MySQL funktioniert
  • hat konfigurierbare Routen
  • hat Unterstützung für Layouts
71
jon

web2py ist 265 KB Quellcode und 1,2 MB alles inklusive (vergleiche mit 4,6 MB Django). Web2py wird jedoch alles tun, was Sie benötigen (Sitzung, Cookies, Anfrage, Antwort, Cache, Internationalisierung, Fehler/Tickets, Datenbankabstraktion für GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird usw.). Es ist keine Installation erforderlich - einfach entpacken und darauf klicken - und Sie können die Entwicklung in Ihrem Browser durchführen.

Web2py bietet sowohl Routen als auch umgekehrte Routen.

Web2py verfügt über hierarchische Vorlagensysteme, dh eine Ansicht kann ein Layout erweitern, wodurch ein anderes Layout erweitert werden kann. Ansichten können auch andere Ansichten enthalten.

44
massimo

Da Sie ausdrücklich kein ORM wollen, würde ich mich von einem "Full Stack" -Framework fernhalten, wenn ich Sie wäre. Der WSGI-Standard von Python bietet Ihnen eine Vielzahl benutzerfreundlicher Optionen, mit denen Sie genau die Funktionen finden, die Sie benötigen, und sogar Ihren Arbeitsstil bestimmen können.

Hier ist ein Beispiel: Für den URL-Versand können Sie Routes verwenden, die Ports über den URL-Versandstil von Rails. Oder Sie können Selector mit WebOb kombinieren, wenn dieser Stil mehr zu Ihnen passt.

Für "Layouts" können Sie das leistungsstarke Jinja2 verwenden, wenn Sie Vorlagen möchten, die keinen Code ausführen können. Oder Mako , wenn Sie lieber einen kleinen Code in Ihre Vorlagen mischen möchten. Sie können sogar Zustellung verwenden, um das Layout von Seiten zu steuern, die aus mehreren Apps und sogar mehreren Sprachen bestehen!

Ein Full-Stack-Webframework ist insofern eine gute Wahl, als Sie nur auf die App Ihres Gebäudes achten können. Aber die Auswahl, die ich oben aufgeführt habe, ist eine gute Sammlung, um Sie dazu zu bringen, Ihre eigene zu bauen. Wenn Sie diesen Weg beschreiten, finden Sie es einfach, Beaker für Caching und Sitzungen einzustecken, wenn Sie diese benötigen, oder WebError , um Sie beim Debuggen zu unterstützen.

Persönlich bin ich ein großer Fan von ORMs (insbesondere SQLAlchemy ), aber wenn Sie ORM-frei und insgesamt leicht sein möchten, können Sie es nicht übertreffen, die großartigen WSGI-Komponenten zu kombinieren, die in Python verfügbar sind.

31
Kevin Dangoor

Geben Sie web.py einen Versuch. Es ist sehr einfach und bietet möglicherweise den Minimalismus, den Sie suchen.

11
Dimitry Z

Pylone

Es ist viel besser als Django und kommt nicht mit einem beschissenen ORM.

9
habnabit

Die Leute gaben bereits viele Antworten zu Webanwendungs-Frameworks, aber MVC (oder ein anderes Paradigma) ist nicht nur an das Web gebunden. Das dient nur der Klarheit.

Wenn es um einfache MVC geht, entspricht Pylons dem Paradigma auf strengere Weise. Django interpretiert MVC und nennt es Modellvorlagenansicht , aber die Idee der Rollentrennung ist dieselbe. Die tatsächliche Auswahl ist eine Frage des persönlichen Geschmacks, obwohl keine dieser beiden von mir als leichtgewichtig eingestuft wird (Pylone scheinen leichter zu sein , aber in der Tat nicht, und vor kurzem hat Django etwas zusätzliches Gewicht zugenommen - höchstwahrscheinlich passen Sie nicht einmal kleine Anwendungen wie persönliche Blogs in den 20MB-Speicher).

Natürlich hindert Sie nichts daran, Ihr eigenes Framework zu schreiben, z. mit WebOb . Sie können es als Licht machen, wie Sie wollen (und viele Dinge lernen, die versuchen).

8
zgoda

kasse https://github.com/salimane/bottle-mvc oder https://github.com/salimane/flask-mvc . Dies sind Kesselplatten, mit denen Sie mit Steuerungen beginnen können, Modelle in separaten Ordnern. Sie basieren auf Flaschen- und flask Mikro-Frameworks, keine nutzlosen Funktionen. Sie bieten Ihnen die Flexibilität, beliebige Module zu installieren.

Wenn Sie etwas Einfaches wollen, ohne Ihr eigenes Framework erstellen zu müssen, ohne all-inclusive zu sein (Django), möchten Sie vielleicht CherryPy ausprobieren. Es kann fast jedes Dispatcher (Page Handler/URL-Routing-System) verwenden. Sie müssten auch Ihre eigene Template-Engine auswählen, Genshi ist mein Favorit.

6
alif

Wenn es um Desktop-Anwendungen geht, ist Dabo eine gute Wahl. Es ist ein plattformübergreifendes Framework auf wxPython, das MySql, Postgresql, Firebird und Sqlite unterstützt.

6
uwe

Sie möchten web2py. Prüfen Sie:

  • oRM ist mir egal, ich möchte nur, dass es mit MySQL funktioniert

Web2py hat kein ORM, aber einen syntaktischen Wrapper über SQL, der das Ausführen von SQL erheblich vereinfacht.

  • hat konfigurierbare Routen
  • hat Unterstützung für Layouts

... web2py hat beides.

Und web2py ist in so ziemlich allen Belangen leichter als Django/Rails/whatever. Es ist sehr leicht zu lernen. Das Schwierigste beim Erlernen eines MVC-Frameworks sind die Skripte, der ORM und (mit Django) die Vorlagensprache. Aber web2py hat die Skripte losgeworden, den ORM vereinfacht und die Template-Sprache ist einfach python auf eine kluge Art und Weise.

5
toomim

Django!

Google App Engine verwendet es.

Ich benutze es auch für meine eigenen Haustierprojekte.

4
Graviton

Ja, ich würde sagen, Django ist definitiv der richtige Weg. Sein modularer Aufbau stellt sicher, dass Sie Komponenten (ORM, Template-Engine, URL-Versand, ...) mischen können, anstatt stecken zu bleiben Mit einer Komponente, die Ihnen das Framework zur Verfügung stellt, können Sie sie stattdessen durch eine beliebige Entsprechung eines Drittanbieters ersetzen.

4
Gabriel Ross

web2py! Django nennt einen Controller eine Ansicht, 'nuf sagte.

3
why

Wenn Sie Einfachheit wünschen, verwenden Sie web2py oder Pylone. Django ist gut ... aber die Lernkurve ist steil

3
BasicGuy

Django. Sie brauchen nicht müssen, um die zusätzlichen Funktionen zu nutzen, und es ist gut gestaltet, so dass Sie Bibliotheken von Drittanbietern nach Bedarf mischen und abgleichen können.

2
John Millikin

Ich würde mir Pylons ansehen. es ist leicht und schnell.

2
tholo

Ich bin auch auf dem Django Boot. Hier sind ein paar Gründe warum:

2
Ross

Ich bin wirklich neu in Python aber ich habe ein paar versucht, speziell Django und web2py. Ich mochte die Einfachheit von web2py, ich konnte eine erstellen Website von mittlerer Komplexität in wenigen Tagen. Es verfügt über eine unübertroffene Reihe von Funktionen wie DAL, Codegenerierung, HTML-Hilfen und für mich war das wichtigste Merkmal, dass die Dokumentation auf der Website ziemlich vollständig ist.

2
user10917

Django ist meine Empfehlung.

Sie finden eine Einführung hier (ein Google Tech Talk von Jacob Kaplan-Moss):

Und vielleicht möchten Sie auch einen Blick auf Adrian Holovatys Vortrag bei Snakes and Rubies , DePaul University:

0
Nolan Evans