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
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.
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.
Donner web.py un essai. C'est très simple et peut fournir le Minimalisme que vous recherchez.
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).
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é.
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.
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.
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.
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.
Django!
Google App Engine l'utilise.
Je l'utilise aussi pour mes propres projets.
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.
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.
je suis aussi sur le bateau de Django. Voici quelques raisons pour lesquelles:
- vous allez probablement gagner du temps avec "admin interface de Django en évitant les requêtes manuelles.
- Django système de templating est fantastique
- Django a un MERVEILLEUX communauté , très serviable (voir #django sur freenode )
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:
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