Qu'est-ce qu'un bon cadre MVC léger de Python? [fermé]

je sais qu'il y a une tonne de cadres Python dehors. Pouvez-vous les gars me pointer dans la bonne direction? Ma principale préoccupation est la simplicité, je n'ai pas besoin de beaucoup de fonctionnalités externes. Voici quelques autres choses que je voudrais (ou ne veux pas):

  • ne se soucient pas de l'ORM, je veux juste qu'il fonctionne avec MySQL
  • a des routes configurables
  • supporte les layouts
69
demandé sur Tshepang 2008-09-16 06:44:25

19 réponses

web2py est 265Kbytes de code source et de 1,2 MO all inclusive (comparer avec 4,6 MO de Django). Pourtant web2py fera tout ce dont vous avez besoin (gérer la session, les cookies, la demande, la réponse, le cache, l'internationalisation, les erreurs/billets, l'abstraction de base de données pour GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, FireBird, etc.) Il n'a pas besoin d'installation - il suffit de décompresser et de cliquer dessus - et vous pouvez faire le développement dans votre navigateur.

Web2py a à la fois des routes et des routes inverses.

Web2py a un modèle de système hiérarchique qui signifie qu'une vue peut étendre une mise en page qui peut étendre une autre mise en page, etc. les vues peuvent également inclure d'autres vues.

44
répondu massimo 2009-08-09 08:30:51

puisque vous ne voulez pas explicitement un ORM, je me tiendrais à l'écart d'un framework" full stack " si j'étais vous. Le standard WSGI de Python vous offre une tonne d'options faciles à utiliser qui vous donneront juste les fonctionnalités dont vous avez besoin et vous permettront même de choisir votre style de travail.

voici un exemple: pour l'expédition D'URL vous pouvez utiliser Routes , qui ports sur le style D'expédition D'URL des Rails. Ou vous pouvez combiner avec WebOb si ce style vous convient plus.

pour "layouts", vous pouvez utiliser le puissant Jinja2 si vous voulez des gabarits qui ne peuvent pas exécuter de code. Ou, Mako si vous préférez pouvoir mélanger un peu de code avec vos gabarits. Vous pouvez même utiliser Deliverance pour contrôler la mise en page des pages qui sont composées à partir de plusieurs applications et même de plusieurs langues!

A full-stack web cadre est agréable en ce qu'elle fait un tas de choix pour vous, vous permettant de payer attention juste à l'application de votre bâtiment. Mais, le choix que j'ai énumérés ci-dessus sont une bonne collection pour vous allez construire votre propre. Si vous prenez ce chemin, vous trouverez facile de brancher Beaker pour la mise en cache et les sessions si vous en avez besoin, ou WebError pour vous aider avec le débogage.

personnellement, je suis un grand fan des ORMs (en particulier SQLAlchemy ), mais si vous cherchez à aller ORM libre et léger dans l'ensemble, vous ne pouvez pas battre combiner les grands composants WSGI disponibles en Python.

31
répondu Kevin Dangoor 2008-09-17 13:35:01

Donner web.py un essai. C'est très simple et peut fournir le Minimalisme que vous recherchez.

11
répondu Sudeep Acharya 2014-06-24 03:34:18

pylônes.

c'est beaucoup mieux que django, et ne vient pas avec un ORM merdique.

9
répondu habnabit 2008-09-16 03:51:07

les gens ont déjà donné de nombreuses réponses concernant les cadres d'application web, mais MVC (ou tout autre paradigme) n'est pas seulement lié au web. C'est juste pour plus de clarté.

si vous êtes à propos de MVC simple, Pylons se conforme au paradigme d'une manière plus stricte. Django interprète MVC et ils l'appellent model-template-view , mais l'idée de séparation des rôles est la même. Choix est une question de goût personnel, bien qu'aucune de ces deux je considère lightweigth (Pylons pourrait sembler plus léger , mais en fait ne l'est pas, et récemment Django recueilli un certain poids supplémentaire - très probablement, vous ne conviendra pas même petite application comme blog personnel dans la mémoire des résidents de 20MB).

bien sûr, rien ne vous empêchera d'écrire votre propre cadre, par exemple: avec WebOb . Vous pouvez le faire comme léger comme vous voulez (et apprendre beaucoup de choses en essayant).

8
répondu zgoda 2008-09-17 08:39:11

si vous voulez quelque chose de simple, sans avoir à faire votre propre framework , tout en n'étant pas encore tout compris (django), vous pourriez vouloir essayer CherryPy . Il peut utiliser presque n'importe quel dispatcher (système de routage de page / URL). Vous devrez également choisir votre propre moteur de templage, Genshi est mon préféré.

6
répondu alif 2008-09-16 15:37:39

caisse https://github.com/salimane/bottle-mvc ou https://github.com/salimane/flask-mvc . Ce sont des boilerplates qui pourraient vous faire démarrer avec des contrôleurs, des modèles dans des dossiers séparés. Ils sont basés sur des cadres de bouteilles et de flacons micro, pas de fonctionnalités inutiles, ils vous donnent la flexibilité d'ajouter n'importe quels modules que vous voulez.

6
répondu Salimane Adjao Moustapha 2011-11-25 07:29:15

en ce qui concerne les applications bureautiques Dabo est un bon choix. C'est un cadre de plate-forme sur le dessus de wxPython qui supporte MySql, Postgresql, Firebird et Sqlite.

6
répondu NullUserException 2011-12-20 16:15:44

vous voulez web2py. Vérifiez:

  • ne se soucient pas de l'ORM, je veux juste qu'il fonctionne avec MySQL

Web2py n'a pas d'ORM, mais il a un wrapper syntaxique sur SQL qui le rend beaucoup plus facile à faire le SQL.

  • a des routes configurables
  • supporte les layouts

...web2py a les deux.

Et web2py est plus léger que django / rails / quoi que ce soit sur à peu près tous les points. Il est TRÈS facile à apprendre. Les choses les plus difficiles dans l'apprentissage d'un MVC framework sont les scripts, L'ORM, et (avec django) le template language. Mais web2py s'est débarrassé des scripts, a simplifié L'ORM, et le langage de template est juste python d'une manière intelligente.

5
répondu toomim 2009-08-09 08:19:38

Oui, je dirais que Django est certainement le chemin à parcourir. Sa conception modulaire garantit que vous pouvez mélanger et assortir des composants (ORM, moteur de templating, envoi D'URL, ...) Au lieu d'être bloqué avec un composant que le framework vous fournit, vous pouvez le remplacer par n'importe quel équivalent de tierce partie à la place.

4
répondu Gabriel Ross 2008-09-16 02:55:18

Django!

Google App Engine l'utilise.

Je l'utilise aussi pour mes propres projets.

4
répondu Graviton 2008-09-16 03:48:52

web2py! django appelle un contrôleur une vue", a déclaré nuf.

3
répondu 2008-10-04 04:35:28

si vous voulez de la simplicité utilisez web2py ou pylons. Django est bon...mais la courbe d'apprentissage est raide

3
répondu 2009-07-23 06:25:05

Django. Vous ne ont pour utiliser les fonctionnalités supplémentaires, et il est bien conçu de sorte que vous pouvez mélanger-n-match bibliothèques tierces si nécessaire.

2
répondu John Millikin 2008-09-16 02:52:00

je suis vraiment nouveau sur Python mais j'ai essayé calme quelques-uns, spécialement Django et web2py. J'ai adoré la simplicité de web2py, j'ai pu créer un site de complexité moyenne en quelques jours. Il a un ensemble imprécis de traits d'étiquette, génération de code, HTML hlpers et pour moi la caractéristique la plus importante était la documentation dans le site est tout à fait complète.

2
répondu user10917 2008-09-16 02:58:45

je voudrais jeter un oeil à Pylons ; il est léger et rapide.

2
répondu 2008-09-16 20:55:58

je suis aussi sur le bateau de Django. Voici quelques raisons pour lesquelles:

2
répondu Ross 2008-09-17 04:37:16

Django est ma recommandation.

, Vous pouvez trouver une introduction à la ici (Google de Parler de Technologie par Jacob Kaplan-Moss):

et vous voudrez peut-être aussi jeter un oeil à discours D'Adrian Holovaty donné à serpents et rubis , DePaul University:

-1
répondu Nolan Evans 2014-09-12 01:51:01

bien que tous les cadres Python ne prennent pas explicitement en charge MVC, il est souvent trivial de créer un site web qui utilise le modèle MVC en séparant la logique des données (le modèle) de la logique d'interaction utilisateur (le contrôleur) et les gabarits (la vue).

http://docs.python.org/howto/webservers.html#model-view-controller

-3
répondu terminalv 2011-06-09 15:55:31