2008-09-16 17 views
69

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 quieren):¿Qué es un buen marco liviano de Python MVC?

  • no me importa para ORM, sólo quiero que funcione con MySQL
  • tiene rutas configurables
  • tiene soporte para diseños
+0

Pago pyMVC https://github.com/hasankhan/pyMVC –

+11

No te encanta cómo se cierran todas las preguntas más interesantes –

Respuesta

4

Django!

Google App Engine lo usa.

Lo uso también para mis propios proyectos de mascotas.

2

Django. No tiene tiene para usar las funciones adicionales, y está bien diseñado para que pueda combinar bibliotecas de terceros según sea necesario.

4

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.

+0

Cambiar un componente * tiene * su precio. Por ejemplo: cambiar el ORM o la plantilla interferirá con la interfaz de administración. – pihentagy

+0

No interfiere. El administrador no es parte de django, es una aplicación externa. No le importa qué ORM usa. Además, no tienes que usar el administrador. Pero puede ejecutar el administrador (que usará django ORM) y otro ORM al mismo tiempo. –

2

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 de 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.

9

Pylons.

Es mucho mejor que django, y no viene con un ORM repugnante.

+1

Simplemente, porque el hecho de que Django venga con un OR/M (supuestamente) horrible, no significa que tenga que usar dicho OR/M, gracias a la naturaleza modular de Django. –

+11

ahaha, sigue diciéndote eso. Django es el framework web python más monolítico de uso común. – habnabit

+0

El conjunto "Pilones es, pero no es, Pirámide" es muy confuso. Y parece que "Pyramid" NO es MVC en sus propias palabras es "RV" ("Vista de recursos"). Consulte "Usted dice que Pyramid es MVC, pero ¿dónde está el controlador?" en la pirámide Docs. – CmdrTallen

11

Give web.py haga una prueba. Es muy simple y puede proporcionar el minimalismo que estás buscando.

6

Si quiere algo simple, sin tener que hacer su propio framework, aunque no es todo incluido (django), puede intentar 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.

2

Me gustaría echar un vistazo a Pylons; es liviano y rápido.

2

También estoy en el barco Django. Aquí hay algunas razones por las cuales:

8

La gente ya dieron muchas respuestas relativas a los entornos de 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 cumple con el paradigma de una manera más estricta. Django interpreta MVC y lo llaman model-template-view, pero la idea de la 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 peso ligero (Las torres pueden parecer más livianas, pero de hecho no lo es, y recientemente Django reunió un poco de peso adicional - lo más probable es que no se ajuste incluso a pequeñas aplicaciones como blog personal en 20 MB de memoria residente).

Por supuesto, nada le impedirá escribir su propio marco, por ejemplo. con WebOb. Puede hacerlo como light como desee (y aprender muchas cosas).

32

Dado que explícitamente no desea un ORM, me mantendría alejado de un marco de "pila completa" si fuera usted. 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 muestra un ejemplo: para el envío de URL puede usar Routes, que muestra 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 utilizar el potente Jinja2 si desea plantillas que no pueden ejecutar código. O bien, Mako si prefiere poder mezclar un pequeño código con sus 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 tiene varias 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 (particularmente SQLAlchemy), pero si lo que buscas es ir libre y ligero en general, no puedes superar la combinación de los excelentes componentes WSGI disponibles en Python.

3

web2py! django llama a un controlador una vista, 'dijo nuf.

+4

Pero su vista es básicamente lo mismo que un controlador MVC. Si el patrón sigue siendo MVC y usted comprende el diseño, ¿realmente importa la nomenclatura?Supongo que podría llamarlo MTV para seguir la nomenclatura de Django (modelo-plantilla-vista), pero entonces probablemente habría juicios legales. –

+3

¿Qué pasa con web2py hace que sea un buen marco? Por favor explique, proporcione ejemplos y/o agregue referencias. – agf

44

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 ambas rutas y rutas inversas.

Web2py tiene un sistema de plantilla jerárquica 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.

+10

¿Es mejor que Django en algunos aspectos, o es la única ventaja de que es más pequeño? – ripper234

+0

No necesito instalación, simplemente descomprímalo y haga clic en él, y puede hacer desarrollo en su navegador – goFrendiAsgard

6

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.

3

Si desea simplicidad, use web2py o pilones. Django es bueno ... pero la curva de aprendizaje es empinada

5

Quieres web2py. Compruébelo usted mismo:

  • no me importa para ORM, sólo quiero que funcione con MySQL

Web2py no tiene un ORM, pero tiene un envoltorio sintáctica sobre SQL que hace que sea mucho más fácil de hacer el SQL.

  • tiene rutas configurables
  • tiene soporte para los diseños de

... web2py tiene ambas cosas.

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.

-3

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 (el ver).

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

+0

Cintura en el tiempo. Enlace que no dice nada. –

+0

Debe eliminarse. Ni siquiera * intenta * responder la pregunta. (la pregunta está "cerrada" aparte, por supuesto;) –

6

pago y envío o https://github.com/salimane/bottle-mvchttps://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.

+0

También recomendaría echar un vistazo a Frasco y sus derivados. – ngeek

Cuestiones relacionadas