¿Cuál de estos dos marcos se adapta mejor a un desarrollador con 11 meses de experiencia? Decidí aprender Python para la codificación del lado del servidor y quería saber cuál de estos sería más adecuado para alguien de mi nivel de habilidad. Acabo de pasar unos días jugando con web2py y realmente me gusta y me pregunto si Django ofrece algo más que me estoy perdiendo.
PD. ACTUALIZACIÓN: Gracias a todos por la maravillosa aportación, después de comprar tres libros de django y pasar por algunos pequeños proyectos / tutoriales tanto para django como para web2py, me he decidido por web2py. Este es un marco maravilloso, que hace que el desarrollo web sea realmente divertido para los principiantes. Recomendaría a todos los principiantes que aprendan este marco, ya que será la corriente principal en el futuro. Django también es un marco maravilloso, pero web2py es simplemente mejor en mi opinión de experiencia limitada.
Respuestas:
(descargo de responsabilidad: soy el líder del proyecto de web2py)
Django tiene alrededor de 5 años más que web2py, por lo que tiene más usuarios y más aplicaciones para presumir. Django tiene lo que ellos llaman "admin", que no es lo mismo que el "admin" de web2py, sino más bien el "appadmin" de web2py. El "admin" de Django es mejor y más personalizable que el "appadmin" de web2py. Django no tiene el equivalente de "admin" de web2py. (perdón por la confusión del nombre).
web2py es más compacto y tiene más funcionalidad lista para usar (más bases de datos compatibles, IDE basado en web, sistema de tickets, se ejecuta en GAE sin parches, múltiples métodos de inicio de sesión, control de acceso basado en roles, interfaz de traducción basada en web, soporte para múltiples conexiones de bases de datos transacciones distribuidas y más).
Para mí, la funcionalidad más importante de web2py son las migraciones automáticas. Django no los proporciona de fábrica.
Para web2py, la compatibilidad con versiones anteriores a largo plazo es un objetivo principal, junto con la seguridad. Django es comparable a web2py en términos de seguridad (excepto que web2py tenía prevención CSRF y escape predeterminado en plantillas antes que ellos) pero Django rompió la compatibilidad con versiones anteriores cuando se lanzó 1.0. web2py nunca lo hizo desde octubre de 2007.
Para mí, la sintaxis de web2py es más natural:
db(db.tablename.fieldname <= value).select() # web2py Tablename.objects.filter(fieldname__lt=value) # Django
No conozco ninguna funcionalidad de web2py que no esté presente en Django. He hecho esa pregunta muchas veces porque, si la hay, queremos agregarla a web2py, pero aún no he recibido una respuesta satisfactoria.
Por supuesto que hay cosas que ambos hacemos pero de manera diferente. Django sigue "explícito es mejor que implícito". web2py no lo hace y en su lugar sigue "todo debería tener un comportamiento predeterminado". Creo que esto hace que el código y la configuración de web2py sean más compactos.
De todos modos, elija lo que elija, ambos son buenos marcos web sólidos y hay menos similitudes que diferencias. Los desarrolladores de Django son personas muy inteligentes.
La comunidad de web2py es muy amigable. Como experimento, intente hacer una pregunta en el grupo de google de web2py y en el grupo de Django.
fuente
db(db.tablename.fieldname <= value).select()
"), porque no se parece a Python (la parte entre corchetes no asigna valor a uno de los parámetros, sino solo pasaTrue
/False
). ¿Es estándar para web2py o el código que proporcionó es solo una versión simplificada del código web2py de la vida real? ¿Quizás la parte entre paréntesis debería incluirse entre comillas? Por favor explique.Tanto Django como web2py son excelentes marcos web de 'pila completa' con características y capacidades similares; no se perderá mucho como principiante con ninguno de los marcos.
Es difícil responder a su pregunta sin saber más sobre lo que quiere hacer con su aprendizaje. Algunos dirían que existe el peligro de aprender el marco y no el lenguaje, por lo que sería mejor obtener una comprensión más profunda del lenguaje Python y los marcos más ligeros (por ejemplo, Flask o wekzeug ) primero.
Dicho esto, web2py tiene una curva de aprendizaje inicial más baja que Django, ya que fue diseñado específicamente como una herramienta de aprendizaje . Así que diría que ha hecho una buena elección. El aprendizaje nunca se desperdicia y si decide que necesita algo más en el futuro, las buenas técnicas que habrá aprendido con web2py no se desperdiciarán.
Aunque hay más recursos de aprendizaje para Django, ya que ha existido por más tiempo y tiene más usuarios, aprender web2py también es rápido debido al excelente libro y las respuestas casi instantáneas a las preguntas del grupo de usuarios .
Si está buscando un trabajo, hay más trabajos de Django, por lo que ese podría ser un factor. Habiendo dicho eso, la comunidad web2py ha creado expert4solutions recientemente donde puede promover sus habilidades y disponibilidad en el futuro.
¡Que te diviertas!
fuente
Soy un novato completo con Web2py y DJango, pero quería un marco web que fuera pythonic para jugar, aprender y crear una interfaz para una base de datos simple. Miré web2py pero no pude encontrar ningún tutorial decente, dirigido a principiantes completos, cuando instalé web2py, lo cual fue muy fácil, no sabía qué hacer a continuación, parecía no haber tutoriales que me guiaran cómo crear una aplicación web sencilla (no solo hola mundo). Por otro lado, DJango hizo Writing your first DJango App Part 1 . Esto ha sido realmente bueno, ya que le dio a un novato una introducción sobre cómo configurar y usar el marco escribiendo una aplicación web simple. Hasta que Web2Py ofrezca esto, mi voto es para DJango.
fuente
En muchas palabras: (como entendí)
Web2py es definitivamente más fácil y hace que el código sea más simple y limpio. Pero Django le brinda una mejor comprensión de lo que está sucediendo y también más poder para modificar el diseño / proceso.
Web2py se centra más en "lo simple es mejor que lo complejo", pero Django se centra más en "lo explícito es mejor que lo implícito". Dos partes de The Zen of Python, por lo que es muy difícil decir qué marco es más Pythonic.
fuente