Pregunta

He probado casi todos los framework web Python que existe, y eso me llevó mucho tiempo darse cuenta de que no había un marco bala de plata, cada uno tenía sus propias ventajas y desventajas. Empecé con Snakelets y de corazón disfrutado de ser capaz de controlar casi todo en un nivel inferior sin mucho alboroto, pero luego descubrí TurboGears y yo he estado usando (1.x) desde entonces. Herramientas como pasarela y la consola web son de gran valor para mí.

Pero con TurboGears 2 que salen, que trae soporte WSGI, y después de leer sobre los debates religiosos entre los campos de Django y WSGI, realmente estoy dividido entre "haciendo de la manera correcta" , por ejemplo, el aprendizaje WSGI, pasar tiempo valioso escribiendo funcionalidad que ya existe en Django y otros marcos full-stack, en lugar de utilizar Django o algún marco de alto nivel que lo hace todo por mí. Las desventajas con este último que puedo ver son bastante obvias:

  1. No estoy aprendiendo nada en el proceso
  2. Si alguna vez tengo que hacer nada menor nivel que va a ser un dolor
  3. La sobrecarga requerida por sólo un sitio básico que utiliza la autenticación es una locura. (OMI)

Por lo tanto, supongo que mi pregunta es, ¿cuál es la mejor opción, o es sólo una cuestión de opinión, y debería aguantar y utilizar Django si logra lo que quiera con un mínimo esfuerzo (Quiero autenticación y una interfaz CRUD a mi base de datos)? Probé Werkzeug, Glashammer y amigos, pero AuthKit y Repoze me asustó fuera, así como el número de pasos necesarios para la autenticación básica acaba de configurar. Miré a los pilones, pero parece que carecen de la documentación, y al hacer referencia a características simples como la autenticación o una interfaz CRUD, varias páginas wiki y documentación parecía que se contradicen entre sí, con diferentes cortes para las versiones y tal.


Gracias a S. Lott por señalar que yo no era lo suficientemente claro. Mi pregunta es: ¿cuál de los siguientes es que vale la pena en el largo plazo, pero no doloroso en el corto (por ejemplo, una especie de término medio, alguien?) - Aprende WSGI, o un palo con un marco "baterías incluído"? En este último caso, le agradecería una sugerencia en cuanto a si debería darle otra oportunidad Django, seguir con TurboGears 1.x, o aventurarse en algún otro marco.

Además, he intentado CherryPy, pero no era capaz de encontrar una buena aplicación CRUD suficiente como para que yo pudiera plop y utilizar de inmediato.

¿Fue útil?

Solución

Sugiero tomar otro vistazo a TG2. Creo que la gente ha dejado de percibir algunos de los avances que se han hecho desde la última versión. Aparte de la creciente pila WSGI de los servicios disponibles hay algunos artículos bastante TG2-específicos a considerar. Aquí hay un par de toques de luz:

Sistema de Administración TurboGears - Esta interfaz CRUD a su base de datos es totalmente personalizable mediante una clase de configuración declarativa. También se integra con Dojo para darle tablas infinitamente desplazables. validación del lado del servidor también está automatizado. La interfaz de administración usa URLs REST y verbos HTTP que significa que sería fácil de conectar a programáticamente usando estándares de la industria.

CrudRestController / RestController - TurboGears proporciona una forma estructurada para manejar los servicios en su controlador. que le proporciona la capacidad de utilizar los verbos HTTP estandarizadas simplemente extendiendo nuestra RestController. Combinar Sprox con CrudRestController, y se puede poner en cualquier porquería en su aplicación con las formas generadas automáticamente totalmente personalizables. TurboGears ahora es compatible con los tipos MIME como extensiones de archivo en la URL, por lo que puede tener el controlador de render .json y.XML con la misma interfaz que utiliza para representar HTML (volviendo un diccionario de un controlador)

Si hace clic en los enlaces verá que tenemos una nueva serie de documentos construido con la esfinge, que es más amplia que la documentación del pasado.

Con la mejor servidor web , ORM y (s) (elija su propia) bajo el capó, es fácil ver por qué TG tiene sentido para la gente que desee ponerse en marcha rápidamente, y todavía tienen escalabilidad como su sitio crece.

TurboGears es a menudo visto como tratar de golpear un blanco en movimiento, pero son consistentes sobre las emisiones, lo que significa que no tendrá que preocuparse por trabajar fuera del tronco para obtener las últimas características que necesita. Viniendo hacia el futuro:. TurboGears más extensiones que permitan su aplicación a crecer funcionalidad con la facilidad de comandos parche

Otros consejos

  

los debates religiosos entre los campos de Django y WSGI

Parece como si usted es un poco poco confundido acerca de lo que es y lo que WSGI es Django. Diciendo que Django y WSGI están compitiendo es un poco como decir que C y SQL están compitiendo:. Que está comparando manzanas y naranjas

Django es un marco, WSGI es un protocolo (que está soportado por Django) para cómo el servidor interactúa con el marco. Lo más importante, aprender a usar directamente WSGI es un poco como el montaje de aprendizaje. Es una gran experiencia de aprendizaje, pero en realidad no es algo que se debe hacer por el código de producción (ni se pretende que sea).

En cualquier caso, mi consejo es que averiguarlo por sí mismo. La mayoría de los marcos tienen un "hacer una wiki / blog / sondeo dentro de una hora" tipo de ejercicio. Pasa un poco de tiempo con cada uno de ellos y averiguar cuál le gusta más. Después de todo, ¿cómo se puede decidir entre diferentes marcos si no estás dispuesto a probarlos?

Su pregunta parece ser "es que vale la pena aprender WSGI y hacer todo usted mismo", o el uso de un "marco de pila completa que hace todo por ti."

Yo diría que es una dicotomía falsa y hay una tercera forma obvia. TurboGears 2 intenta proporcionar un camino suave desde un marco de estilo "hacer todo por ti" hasta una comprensión de middleware WSGI, y la capacidad de personalizar casi todos los aspectos del marco para satisfacer las necesidades de su aplicación.

Es posible que no tenga éxito en todos los lugares en todos los niveles, pero sobre todo si ya tiene algunos TurboGears 1 experiencia creo que la curva de aprendizaje TG2 va a ser muy, muy fácil al principio y que tendrá la capacidad de ir más profundo exactamente cuando lo necesite.

Para hacer frente a sus problemas particulares:

  • Proporcionamos un sistema de autorización de la caja que coincide con la que está acostumbrado a partir de TG1.
  • Proporcionamos un fuera de la caja "Django admin" como interfaz llamada tgext.admin, que funciona muy bien con dojo para hacer una hoja de cálculo de lujo como interfaz por defecto.

También me gustaría hacer frente a un par de las otras opciones que están ahí fuera y hablar un poco acerca de los benifits.

  • CherryPy. Creo CherryPy es un gran servidor web y un buen Web-marco minimalista. No está basado en WSGI internamente, pero tiene un buen apoyo WSGI aunque no le proporcionará la experiencia de "pila llena". Sin embargo, para configuraciones personalizadas que deben ser a la vez rápido y no son particularmente adecuados a los valores predeterminados proporcionados por Django o TurboGears, que es una gran solución.

  • Django. Creo que Django es un sistema muy agradable, tigtly integrado para el desarrollo de sitios web. Si su aplicación y el estilo de trabajo encaja bien dentro de ella la configuración estándar que puede ser fantástico. Sin embargo, si hay que ajustar su consumo de DB, reemplace el lenguaje de plantillas, utilice un modelo de autorización de usuario diferente o de otra manera hacer las cosas diferentes que pueden muy probable que se encuentre la lucha contra el marco.

  • Pilones Torres de alta tensión como CherryPy es un gran Web-marco minimalista. A diferencia de CherryPy es WSGI habilitado a través de todo el sistema y ofrece algunas configuraciones normales como SQLAlchemy y Mako que pueden ayudarle a escalar bien. Los nuevos documentos oficiales son de mucha mejor calidad que los viejos documentos wiki que son lo que parecen haber mirado.

¿Ha echado un vistazo a CherryPy. Es minimalista, pero eficiente y simple. Es de bajo nivel suficiente para que no ponerse en ellos manera, pero lo suficientemente alto como para ocultar la complejidad. Si recuerdo bien, TurboGears fue construido en él.

Con CherryPy, usted tiene la opción de todo. (Marco de plantilla, ORM si se desea, de fondo, etc.)

¿Ha revisado web2py? Después de evaluar recientemente muchos marcos web de Python recientemente he decidido adoptar esta. También echa un vistazo a Google App Engine si no lo ha hecho.

Yo diría que la respuesta correcta depende de lo que realmente quiere y necesita, como lo que valdrá la pena en el largo plazo depende de lo que necesita en el largo plazo. Si su objetivo es conseguir que las aplicaciones implementadas lo antes posible después de la ruta 'más simple', es decir. Django, es sin duda el camino a seguir. El valor de un sistema bien probado y bien documentado de que exactamente lo que quiere no puede ser subestimada.

Por otro lado, si usted tiene tiempo para aprender una variedad de cosas nuevas que puedan aplicarse en otros ámbitos y quieren tener el alcance más amplio para la personalización entonces algo así como TurboGears es superior. TurboGears le da la máxima flexibilidad, pero que tiene que pasar mucho tiempo leyendo documentos externos para cosas como Repoze, SQLAlchemy y Genshi para conseguir algo útil hacer con ella. Los documentos TG2 son deliberadamente menos detallados que los documentos TG1 en algunos casos porque se considera que los documentos externos son mejores de lo que solían ser. Si este tipo de cosas es un obstáculo o una inversión depende de sus propias necesidades.

Django es definitivamente vale la pena aprender, y suena como que se ajuste a sus propósitos. La interfaz de administración que viene con es fácil de poner en marcha, y se hace uso de la autenticación.

En cuanto a "cualquier cosa nivel inferior", si se refiere a SQL, que es totalmente posible para empujar SQL en consultas que con la palabra clave adicional. Estilísticamente, siempre se trata de evitar que tanto como sea posible.

En cuanto a "no aprender nada" ... la verdadera pregunta es si su preferencia es estar aprendiendo algo principalmente de bajo nivel o de nivel superior, que no es una pregunta que nadie puede responder aquí para usted.

Pilones parece una gran herramienta para mí:

  • un marco web real (CherryPy es sólo un servidor web),
  • código base pequeña - la reutilización de otros proyectos,
  • escrito completamente con WSGI en mente, basado en Pegar,
  • le permite codificar la aplicación de inmediato y toca los bits de bajo nivel si es necesario,

He usado CherryPy y TurboGears y miro muchos otros marcos, pero ninguno de ellos eran tan ligero y tan productiva es Pilones. Compruebe el en Google .

Soy un fan TurboGears, y esto es exactamente la razón por la cual:. Cosas un muy buen compromiso entre el control y hacer frente a la derecha fácil

Vas a tener que hacer su propia cuenta, por supuesto. Tal vez usted prefiere aprender menos, tal vez más. Tal vez las áreas de conocimiento que me gustan / control (base de datos, por ejemplo), no le importa nada. Y no me malinterpreten. No estoy caracterizar o no un marco que necesariamente duro o mal. Es sólo mi juicio subjetivo.

También se lo recomendaría TurboGears 2 si es posible. Cuando sale, creo que va a ser mucho mejor que 1,0 en términos de lo que se ha seleccionado para valores predeterminados (Genshi, torres de alta tensión, sqlalchemy)

Yo sugeriría para TurboGears 2. Han hecho un trabajo fantástico de integrar mejor del mundo Python.

WSGI: Suponiendo que está desarrollando proyectos / soluciones de negocio moderadamente complejos en TG2 o algún otro marco decir Grok. A pesar de que estos marcos es compatible con WSGI quiere decir que uno que está utilizando estos marcos han de aprender WSGI? En la mayoría de los casos la respuesta es No, quiero decir que es bueno tener este conocimiento, sin duda.

conocimiento WSGI es, probablemente, es más útil en casos como

  • que desea utilizar alguna de middleware o algún otro componente que no está prevista como parte de la pila estándar para, por ejemplo. Authkit con TG o Grok sin ZODB .
  • que está haciendo algo de integración.

CherryPy es bueno, pero pensar en el manejo de su base de datos confirma / reversiones al final de las operaciones, JSON exponer, validaciones en tales casos TG, Django como marcos hacen todo por usted.

Web2py es el ingrediente secreto aquí. No se pierda el registro.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top