¿Hay algún andamiaje adecuado para Django? (A la ruby ​​on rails)

¿Hay algún andamiaje adecuado para Django?

Puede estar en la versión 1.3 recién lanzada, pero todavía no la he encontrado.

He buscado y aún no he encontrado algo para Django como el comando Generar Rails. Django tiene una filosofía un poco diferente. Le brinda herramientas para hacer las cosas con facilidad, pero en realidad no lo hace por usted (excepto la interfaz de administrador). En el gran esquema de las cosas, creo que esto está bien. Cuando uso los andamios de los Rails, a menudo no puedo conservar gran parte de las cosas generadas automáticamente. Cuando lo haga, la interfaz de administración de django probablemente también habría funcionado y me hubiera dado más funcionalidad.

En su lugar, lo que sugiero es leer el paso 4 del tutorial de Django , que presenta vistas genéricas, y luego el capítulo 7 del libro de Django que presenta formularios. Tienes que ser paciente con el capítulo 7 porque los autores creen que quieres saber los detalles de la manera difícil antes de que te enseñen la manera más fácil. (intente buscar en la página la frase django.forms)

Al final, la cantidad de trabajo que tienes que hacer entre Rails y django es equivalente, y tal vez un poco menos con Django. Sin embargo, no tiene un comando que le dé automáticamente un código de caldera para usar como base.

Así que Django 1.3 todavía carece de la funcionalidad ‘andamio’. No está bien. Lo que es mejor en el andamio, es que le permite al desarrollador comenzar de inmediato con el proyecto, sin recordar todas las syntax de ‘modelos’, ‘urls’ y ‘vistas’.

Mira este ejemplo, vamos a comenzar un nuevo proyecto y aplicación:

 $django-admin startproject mysite $python manage.py startapp blog 

y ahora necesitamos ‘INICIAR’ manualmente todo, desde archivos casi vacíos. PERO sería muy conveniente hacerlo de esta manera (como en los Rails)

 $python manage.py scaffold app:blog model:Post title:string content:text 

Esto debería darnos: modelos.py

 class Post(models.Model): title = models.CharField content = models.TextField 

vistas.py

 def index(request): posts = Post.objects.all().order_by('-id') return render_to_response('blog/index.html', {'posts': posts}) 

y actualice urls.py de alguna manera, … o no, esto es más complicado pero menos necesario.

Esto no debería ser difícil de implementar en futuras versiones de Django. Haría esto si tuviera suficiente conocimiento y experiencia en Django. Desafortunadamente no estoy haciendo muchos proyectos Django y es por eso que necesito esta funcionalidad.

Este está más cerca de los andamios similares a Rails: https://github.com/modocache/django-generate-scaffold

Encontré esto: https://github.com/madhusudancs/django-groundwork

Parece que es exactamente lo que estás buscando. Espero eso ayude.

Acabo de usar el comando de administración / ayuda del andamio proporcionado por Django Common y parece que ha configurado una buena cantidad de código repetitivo. Las opciones son limitadas, pero lo suficientemente decentes.

Hojeé el código y la mayoría se ve bien. Sin embargo, tuve que hacer un poco de limpieza, una vez que se ‘erigió’ el andamio:

  • Se agregaron líneas de import separadas para cada modelo creado. Se fusionaron.
  • Las plantillas aún llevaban las especificaciones de etiqueta de la plantilla de url anterior (1.4). Se modificaron para reflejar las nuevas (1.5) especificaciones, es decir, se incluyó el segundo parámetro entre comillas simples, en cada uno de los archivos html creados, para cada uno de los modelos.
  • Se actualizó urls.py principal con una include para el módulo app.urls .
  • Utilizo una configuración no estándar de settings.py: tres archivos separados common.py , dev.py y prod.py para mi configuración. Tenía que agregar la aplicación manualmente a las aplicaciones instaladas. YMMV.

(Editaré esta lista si pienso en otra cosa)

Dicho esto, mirando la cantidad de código repetitivo que NO tuve que escribir, diría que hace un muy buen trabajo.

A partir de ahora, el repo parece bastante bien mantenido: el último compromiso fue hace 18 días al momento de escribir esta respuesta. Probablemente enviaré una solicitud de extracción / plantearé un problema sobre los problemas que enfrenté en su repo, pronto.

Puede consultar django-addview . Está pensado para realizar pasos aburridos y mundanos necesarios para agregar una nueva vista automáticamente con una bonita interfaz gráfica de usuario de ncurses. Lo que hace por ti:

  • Extienda el CBV o escriba la función
  • Rellene los parámetros de CBV
  • Crea una plantilla en una ubicación determinada.
  • Edita urls.py para ti
  • Se preocupa por todas las importaciones

Revelación completa: lo escribí.