python - tutorial - programar en mvc
¿Qué es un buen marco liviano de Python MVC? (19)
Aunque no todos los frameworks de Python soportan explícitamente MVC, a menudo es trivial crear un sitio web que use el patrón MVC separando la lógica de datos (el modelo) de la lógica de interacción del usuario (el controlador) y las plantillas (la vista).
http://docs.python.org/howto/webservers.html#model-view-controller
Sé que hay muchos frameworks de Python. ¿Pueden apuntarme en la dirección correcta? Mi principal preocupación es la simplicidad, no necesito muchas características extrañas. Aquí hay un par de otras cosas que me gustaría (o no quiero):
- no me importa ORM, solo quiero que funcione con MySQL
- tiene rutas configurables
- tiene soporte para diseños
Como explícitamente no quieres un ORM, me mantendría alejado de un marco de "pila completa" si fuera tú. El estándar WSGI de Python le ofrece un montón de opciones fáciles de usar que le brindarán solo las funciones que necesita e incluso le permitirán elegir su estilo de trabajo.
A continuación, se incluye un ejemplo: para el envío de URL puede usar Routes , que puertos sobre el estilo de envío de URL de Rails. O puede combinar Selector con WebOb si ese estilo le conviene más.
Para "diseños", puede usar el potente Jinja2 si desea plantillas que no puedan ejecutar código. O bien, Mako si prefieres poder mezclar un pequeño código con tus plantillas. ¡Incluso puede usar Deliverance para controlar el diseño de las páginas compuestas de múltiples aplicaciones e incluso de varios idiomas!
Un marco web de pila completa es bueno, ya que hace un montón de opciones para usted, lo que le permite prestar atención solo a la aplicación de su edificio. Pero, las opciones que he enumerado arriba son una buena colección para que puedas construir la tuya propia. Si avanza por esa ruta, le resultará fácil conectar Beaker para el almacenamiento en caché y las sesiones si las necesita, o WebError para ayudarlo con la depuración.
Personalmente, soy un gran admirador de los ORM (especialmente SQLAlchemy ), pero si buscas un ORM libre y liviano en general, no puedes superar la combinación de los excelentes componentes de WSGI disponibles en Python.
Cuando se trata de aplicaciones de escritorio, Dabo es una buena opción. Es un marco de plataforma cruzada sobre wxPython que admite MySql, Postgresql, Firebird y Sqlite.
Django!
Google App Engine lo usa.
Lo uso también para mis propios proyectos de mascotas.
Django. No tiene que usar las funciones adicionales, y está bien diseñado para que pueda combinar bibliotecas de terceros según sea necesario.
Prueba web.py Es muy simple y puede proporcionar el minimalismo que estás buscando.
Quieres web2py. Revisalo:
- no me importa ORM, solo quiero que funcione con MySQL
Web2py no tiene un ORM, pero tiene un contenedor sintáctico sobre SQL que hace que sea mucho más fácil hacer el SQL.
- tiene rutas configurables
- tiene soporte para diseños
... web2py tiene ambos.
Y web2py es más liviano que django / rails / lo que sea en casi todos los aspectos. Es MUY fácil de aprender. Lo más difícil de aprender un framework MVC son los scripts, el ORM y (con django) el lenguaje de plantilla. Pero web2py se deshizo de los scripts, simplificó el ORM, y el lenguaje de plantilla es solo python de una manera inteligente.
Sí, yo diría que Django es definitivamente el camino a seguir. Su diseño modular garantiza que pueda mezclar y combinar componentes (ORM, motor de plantillas, despacho de URL, ...) En lugar de quedarse atrapado con un componente que el framework le proporciona, puede reemplazarlo con cualquier equivalente de un tercero.
Si desea simplicidad, use web2py o pilones. Django es bueno ... pero la curva de aprendizaje es empinada
Soy muy nuevo en Python, pero probé algunos silenciosos, especialmente Django y web2py. Me encantó la simplicidad de web2py, pude crear un sitio de mediana complejidad en pocos días. Tiene una serie de características imprecisas como DAL, generación de código, HTML hlpers y para mí la característica más importante es que la documentación en el sitio es bastante completa.
También estoy en el bote de Django. Aquí hay algunas razones por las cuales:
- Es probable que ahorres tiempo con la interfaz de administración de Django al evitar las consultas manuales.
- El sistema de plantillas de Django es fantástico
- Django tiene una community MARAVILLOSA, muy ansiosa por ayudar (ver #django en freenode )
Yo echaba un vistazo a Pylons ; es liviano y rápido.
pago y envío https://github.com/salimane/bottle-mvc o https://github.com/salimane/flask-mvc . Son plantillas repetitivas que pueden ayudarlo a comenzar con los controladores, los modelos en carpetas separadas. Se basan en micro marcos de botellas y frascos, no tienen características inútiles, te dan la flexibilidad de agregar cualquier módulo que desees.
web2py! django llama a un controlador una vista, ''dijo nuf.
Es mucho mejor que django, y no viene con un ORM repugnante.
Django es mi recomendación.
Puede encontrar una introducción aquí (un Google Tech Talk de Jacob Kaplan-Moss):
Y también es posible que desee echar un vistazo a la charla de Adrian Holovaty en Snakes and Rubies , DePaul University:
web2py es 265Kbytes de código fuente y 1.2MB todo incluido (compare con 4.6MB de Django). Sin embargo, web2py hará todo lo que necesite (gestión de sesión, cookies, solicitud, respuesta, caché, internacionalización, errores / tickets, abstracción de bases de datos para GAE, SQLite, MSSQL, MySQL, Postgres, Oracle, Firebird, etc.) No necesita instalación - simplemente descomprime y haz clic en él - y puedes hacer desarrollo en tu navegador.
Web2py tiene rutas y rutas inversas.
Web2py tiene un sistema jerárquico de plantillas, lo que significa que una vista puede ampliar un diseño que puede ampliar otro diseño, etc. Las vistas también pueden incluir otras vistas.
Las personas ya dieron muchas respuestas sobre los marcos de las aplicaciones web, pero MVC (o cualquier otro paradigma) no está vinculado solo a la web. Eso es solo por claridad.
Si se trata de MVC simple, Pilones se ajusta al paradigma de una manera más estricta. Django interpreta MVC y lo llaman modelo-plantilla-vista , pero la idea de separación de roles es la misma. La elección real es una cuestión de gusto personal, aunque ninguno de estos dos lo considero ligero (los Pilones pueden parecer más ligeros , pero de hecho no lo son, y recientemente Django reunió algo de peso adicional: lo más probable es que no 20 MB de memoria residente).
Por supuesto, nada le impedirá escribir su propio marco, por ejemplo. con WebOb . Puedes hacerlo tan liviano como quieras (y aprender muchas cosas intentándolo).
Si quieres algo simple, sin tener que crear tu propio framework , sin ser todo incluido (django), es posible que quieras probar CherryPy . Puede usar casi cualquier dispatcher (controlador de página / sistema de enrutamiento de URL). También deberías elegir tu propio motor de plantillas, Genshi es mi favorito.