2010-09-05 12 views
20

Tengo un proyecto en mente que hace que valga la pena finalmente dar el paso a la programación.Django, Turbo Gears, Web2Py, ¿cuál es mejor para qué?

Después de leer muchas cosas, aquí y en todas partes, estoy preparado para hacer de Python el que aprendo por ahora, más de C# o java. Lo que más me convenció fue en realidad las excursiones de Paul Graham en lenguajes de programación y Lisp, aunque Arc está en la etapa experimental, lo que no me ayudaría a hacer esta aplicación web en este momento.

En cuanto a la aplicación web rápida, he comprobado a cabo Django, Turbo engranajes y Py2Web. A pesar de pasar mucho tiempo leyendo, todavía no tengo ni idea de cuál debería usar.

1) Django sin duda tiene la mejor presencia en línea, y un tutorial en el sitio muy bien hecho, que sin duda saben cómo presumir de sus cosas.

2) Web2Py me atrajo con su instalación no necesaria y el reclamo de hacer que Django parezca complicado. Pero cuando hurgas en su sitio web, rápidamente encuentras contenido que no se ha actualizado en años con enlaces externos rotos ... Hay fantasmas en ese sitio web que hacen que alguien que no está familiarizado con el proyecto se preocupe si es que se trata de un problema.

3) Turbo Gears ... Supongo que también es modular. A las personas que escribieron sobre él les encantó ... No pude encontrar nada específico que lo hiciera especial sobre Django.

Todavía no me decidí por un IDE, aunque leí todas las respuestas a la publicación del código Intellisense aquí. Mostrar fragmentos de código adicionales sería genial también para novatos como yo, pero supongo que debería elegir mi trabajo de marco web primero y luego elegir un editor que funcione bien con él.

Dado que probablemente hay un marco es sin duda el mejor en todo, voy a dar algunos detalles sobre la aplicación que quiero construir:

Se utilizará MySQL, necesita registro/inicio de sesión, y habrá una carga de operaciones matemáticas simples en datos de entrada y consultas SQL. Completé un prototipo funcional en Excel, así que sé exactamente qué es lo que quiero construir, y espero que esto me ayude a superar mi noobness. Seré una aplicación pequeña, nada grande.

Y no quiero ver nada de HTML, mientras que la construcción de ésta ;-)

PS: gracias a las personas que dirigen Stackoverflow, encontramos este lugar justo en el momento correcto también!

+1

Creo que buscó en el sitio equivocado para web2py. Es http://web2py.com. No conocemos enlaces rotos, y lanzamos una nueva versión cada dos semanas en promedio. Cuando se lanza una nueva versión, se actualiza todo el sitio web. – mdipierro

+1

Creo que descubrí lo que sucedió: uno de los enlaces gratuitos de descarga de aplicaciones en el nuevo sitio me llevó al sitio anterior sin que me diera cuenta, y dado que es el sitio antiguo, naturalmente, no está actualizado. – Tsais

+0

Su manual es una excelente lectura, disfrutando de cada página ... – Tsais

Respuesta

19

Debería consultar la documentación en línea de web2py (http://web2py.com/book). Viene con un Control de acceso basado en roles (el mecanismo de control de acceso más general) y es muy granular, puede otorgar acceso para operaciones específicas en registros específicos. Viene con un IDE basado en web, pero también puede usar WingIDE, Eclipse y PyCharm. Viene con un sistema de ayuda que te permite generar HTML sin usar HTML. Aquí está un ejemplo de una aplicación completa que requiere que los usuarios Regístrarse/mensajes/post:

db.define_table('message',Field('body'),Field('author',db.auth_user)) 
@auth.requires_login() 
def index(): 
    db.message.author.default=auth.user.id 
    db.message.author.writable=False 
    return dict(form=crud.create(db.message), 
       messages=db(db.message.id>0).select()) 

El proyecto web2py es muy activo como se puede ver en la lista de cambios http://code.google.com/p/web2py/source/list

Si tiene web2py I preguntas relacionadas sugieren fuertemente se une a la lista de correo web2py: http://groups.google.com/group/web2py/topics

Estamos muy activo y sus preguntas serán contestadas muy rápidamente.

+0

Estaba preparando todo para instalar django hoy, pero después de encontrar un pdf con una función por comparación de funciones con ejemplos de código, fui a sus enlaces, y prácticamente concluí que web2py es el más moderno de los marcos web . Especialmente para alguien nuevo en la programación, es súper agradable cuando la seguridad se maneja para mí, y siempre me han gustado los valores predeterminados útiles en el software. – Tsais

+0

También encontré un par de sitios de la comunidad bien poblados, por lo que estoy lo suficientemente seguro como para ir con el conjunto de características que más me gusta. Mi comprensión de lo que es importante está incompleta en el mejor de los casos, pero uno nunca tiene más que la comprensión actual para basar las decisiones en ;-) Así que muchas gracias por su respuesta. Estoy publicando esto porque me tomo un descanso de leer su manual ^^ – Tsais

+0

Siéntase libre de contactarnos a la lista de correo oa mí personalmente para preguntas y consejos. – mdipierro

4

He tenido experiencias positivas con Django.

  • autenticación integrada y fácil de usar extensiones para registration
  • Muy buena documentación
  • Es probable escribir sus plantillas HTML en su mayoría base.html, a continuación, sólo tiene que utilizar la herencia de plantillas (Nota: Tendrá que escribir al menos un poco de HTML)
  • En contraste con Turbogears, Django es más 'listo para usar'
  • No tengo ninguna experiencia con web2py, pero desde mi impresión, trata de hacer de poco a mucho 'out-of-the-box'
+0

del tutorial de django, parece que puedo copiar algunas plantillas predeterminadas en mi ruta de aplicación y terminar con ella hasta que se complete la aplicación. Y entonces podría tener un impulso inexplicable de rediseñar la plantilla ...? – Tsais

+0

Puedes intentarlo. Pero entonces, HTML tampoco es tan difícil. – miku

1

Si "no quieres ver ningún HTML mientras lo construyes", entonces puedes olvidarte de Django.No se centra en "apuntar-hacer-clic", se enfoca en los profesionales que van del concepto a la producción en el menor tiempo posible. La naturaleza jerárquica del lenguaje de plantillas puede conducir a diseños de sitios generales muy limpios. Uso Django para todos mis sitios más grandes y me encanta.

Aunque está escrito en PHP, no en Python, puede echar un vistazo a la nueva versión principal de WordPress que salió hace 2 o 3 meses. En 3.0, han recorrido un largo camino desde la creación de un entorno de "solo blogs" y hay toneladas de plantillas listas para ello. Por supuesto, si quieres modificar una plantilla, bueno, está ese desagradable viejo HTML de nuevo. Estoy considerando usarlo para mis clientes más pequeños que no pueden tratar con el administrador de un servidor dedicado, etc., que suele venir con un sitio de Django.

Actualización: Ah, ya se perdió la semi-broma - que era demasiado temprano y que tiende a hacer que mi tono sordo al humor. En cuanto al uso de plantillas de sitios existentes, lo he hecho con bastante éxito con un par de sitios, tanto aquellos que eran estáticos como aquellos originalmente guiados por scripts PHP bien escritos. Recomiendo una lectura cuidadosa de los documentos {% extends %} y {% include %}. Ambos toman una cadena literal o una variable. He usado el último método y puede ser bastante útil para un sitio que tiene una fuerte jerarquía que se distingue por los cambios de estilo en las sucursales.

También vale la pena el tiempo para comprender el orden de búsqueda de las plantillas: se puede usar con buenos resultados, pero puede ser desconcertante si no lo asimilas. Consulte los elementos relacionados con la plantilla en el archivo settings.py para este y otros objetos útiles.

+0

Estaba medio bromeando sobre el comentario de no html ... Puedo escribir html mientras duermo, siempre he sido la persona de photoshop/template para el trabajo. Así que estoy emocionado de que parezca que Django me permite usar las plantillas predeterminadas existentes, así que solo me puedo concentrar en escribir la base de datos y la funcionalidad matemática, si no me molesto en jugar con las miradas. Los conjuntos de campos colapsados ​​automatizados parecían tener suficiente control de diseño. – Tsais

+0

gracias por los consejos adicionales, no siempre es fácil saber qué leer y comprender primero ... – Tsais

+0

si le gusta la búsqueda de wordpress en la prensa instantánea (escrita en web2py): http://code.google.com/p/ press-press/ – mdipierro

2

Si decide ir con Django, asegúrese de utilizar sus Vistas genéricas. Le salvarán de escribir muchos códigos, tanto Python como HTML.

Además, a menos que haya una razón muy específica para utilizar MySQL, le aconsejo que cambie a PostgreSQL. Django está mucho más orientado hacia PostgreSQL y, de todos modos, es una base de datos mucho mejor.

La documentación en línea de Django es genial, esto es lo que lo diferencia de todos los demás marcos. También recomiendo el libro Practical Django Projects de James Bennett

+0

¿por qué esto se degrada? – Ben

+0

Sí, definitivamente, ¡sus vistas genéricas tienen algunas características bastante agradables! – Tsais

+0

No era yo, no puedo votar hasta obtener 15 puntos ... ¿tal vez alguien equivocado? Creo que tu respuesta es perfectamente útil y te daré un + una vez que pueda ... Me gustaría preguntarte por qué te gusta PostgreSQL mejor que MySQL. Me preguntaba si era una buena idea usar MySQL ahora que Larry lo posee. Mi principal razón para apegarme a MySQL hasta ahora es que la mayoría de las compañías de hosting lo tienen instalado, y hay muchas herramientas de código abierto para ello.Aunque estoy viendo Web2Py, podría usarlo bastante para administrar cualquier base de datos compatible, que incluye PostgreSQL ... – Tsais

2
  • Django: Heard tiene la mejor interfaz administrativa . Pero usa su propio ORM, es decir, no usa SQL-Alchemy.

  • Web2py: No investigó esto.

  • Turbogears2: utiliza SQL-Alchemy por defecto, utiliza Pasarela para la interfaz de administración , pero la documentación no es tan grande .

Elegí Turbogears2 ya que utiliza componentes populares, por lo que no tiene que aprender nada nuevo ...

+4

Por lo que he encontrado mientras tanto, deberías buscar Web2Py, parece no tener atajos feos que podrían morderte más tarde. Solo unos pocos valores predeterminados razonables, y usted tiene el control de todo de una manera como esta: puede dejar que genere su código SQL, y mostrarlo o no mostrarlo, o puede simplemente escribir el suyo. Todo lo que hace puede anular. Creo que no es solo lo más nuevo, sino que está pensado teniendo en cuenta las ventajas y desventajas de los marcos más antiguos, lo que lo convierte en un avance tecnológico sólido. – Tsais

6

tengo que decir desarrollador no particularmente experto, la velocidad a la que he podido crear utilizando web2py me ha dejado sin palabras. En gran parte debido a la increíble comunidad y el valor central que Massimo tiene para hacer que el marco sea accesible.

cuando empecé yo había escrito 0 líneas de código en Python Nunca oído hablar de web2py

He estado en serio por alrededor de un mes y he progresado (en mi forma habitual) de hacer preguntas que ningún uno podría responder (porque no tenían ningún sentido) a la codificación de horas a la vez sin recoger un libro o hacer una pregunta.

Estoy realmente impresionado.

2

He usado tanto web2py como RoR extensivamente, y aunque RoR ha obtenido mucha popularidad y apoyo en los últimos años, web2py es más simple, más limpio, menos "mágico", y también ofrece más (útil) funcionalidad lista para usar. Diría que web2py tiene más potencial que RoR, pero es un marco relativamente nuevo y aún no tiene la madurez de RoR. (A pesar de eso, sin embargo, elegiría web2py sobre RoR en cualquier momento ...)

Cuestiones relacionadas