Foros del Web » Programando para Internet » Python »

Arquitectura recomendada para un sitio con Django

Estas en el tema de Arquitectura recomendada para un sitio con Django en el foro de Python en Foros del Web. ¡Hola! Bueno, abro este tema ya que tengo una duda, estoy por construir un sitio web con Django y no sé si hay un estándar ...
  #1 (permalink)  
Antiguo 30/09/2012, 14:05
Avatar de kvillaloboscr  
Fecha de Ingreso: agosto-2012
Ubicación: Costa Rica
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 1
Pregunta Arquitectura recomendada para un sitio con Django

¡Hola!

Bueno, abro este tema ya que tengo una duda, estoy por construir un sitio web con Django y no sé si hay un estándar o recomendación que me den para distribuir mi proyecto en "X" aplicaciones y "Y" vistas.

Mi proyecto será el de mi site personal, por lo que tendrá secciones de Home/About me/Services/Portfolio/Contact me. Lo que no sé es si crear una aplicación para cada sección (tipo CMS), y luego conectarlas todas con una aplicación que se llame "website".

Agradecería sus sugerencias.
Muchas gracias :)
  #2 (permalink)  
Antiguo 30/09/2012, 14:49
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Arquitectura recomendada para un sitio con Django

Puedes hacer varias app y distribuirlas en un proyecto.

Puedes ver el repo del sitio de mejorando.la para que te des una idea.
  #3 (permalink)  
Antiguo 30/09/2012, 20:05
Avatar de kvillaloboscr  
Fecha de Ingreso: agosto-2012
Ubicación: Costa Rica
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Arquitectura recomendada para un sitio con Django

Hola razpeitia, gracias por tu mensaje.

Ya vi el repositorio de Mejorando.la, y no sé pero me pareció algo desordenado, osea, hay solo una aplicación 'website', que contiene todos los modelos. ¿Es esto correcto, es mejor crear una app para los proyectos, otra para el "about me", que es en el cual tendré los modelos de "texto" y "servicios", etc, y al final unirlos todos en otra app?
  #4 (permalink)  
Antiguo 30/09/2012, 21:04
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Arquitectura recomendada para un sitio con Django

Bueno si tengo que admitirlo esta un poco desordenado el repo. Pero no veo necesario escribir una app si solo vas a tener 5 modelos.

De hecho se me hace un poco exagerado tener un modelo para cada sección, en lugar de hacer algo un poco mas general, donde el cms sea mas flexible.

Por ejemplo, algo sencillo pero robusto tendría un modelo categoría, un modelo pagina y un modelo usuario (que este modelo ya esta incluido en la app admin).

Una categoría puede tener sub-categorias y las paginas pueden tener 0, 1 o mas categorías, ademas tener un solo autor (o usuario).

Podrías tener 3 vistas:
  • home
  • category
  • page

Si quieres tener moldear tu app a esta nueva entonces /About me/Services/Portfolio/Contact me serian categorías home no seria una categoría, seria mas bien una vista. Tendrías que tener un template genérico para todas las categorías o tener convenciones para que en cierta categoría despliegue algún template personalizado.

Obviamente a pesar de tener menos modelos, esto no lo hace mas fácil de hacer. Pero definitivamente es mas flexible.
  #5 (permalink)  
Antiguo 30/09/2012, 23:32
Avatar de kvillaloboscr  
Fecha de Ingreso: agosto-2012
Ubicación: Costa Rica
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Arquitectura recomendada para un sitio con Django

Bueno, he estado trabajando en más o menos como serían los modelos que voy a usar, me he decidido por que todo lo voy a correr en una aplicación llamada "website"; más adelante, si quiero crear un blog, hago una aplicación del mismo.

Y bien, esto es más o menos un resumen de la estructura del sitio:

Cita:
Secciones:
  • Home: En el home se ve una introducción de "about me", los últimos 3 proyectos, los principales servicios que ofrezco, un contacto rápido y los últimos cuatro testimonios de los clientes.
  • About me: Información más detallada mía (a.k.a currículum), con sub-secciones, las cuales tienen un título y una vista (por ejemplo, el título "professional experience" y una lista con el contenido de los lugares en los que he trabajado) y un lateral con mis habilidades, las cuales son en forma de categoría/lista.
  • Services: La lista de cada servicio con título/descripción, y cada servicio tiene un link hacia la lista de proyectos que están listados bajo dicho servicio (a.k.a: categoría/post).
  • Portfolio: Los proyectos en sí, en esa sección se mostrarán los proyectos, ordenados del más nuevo al más viejo, también se pueden agrupar por los tags, que serán las tecnologías usadas en cada proyecto.
  • Contact: Algunos datos como mi nombre, número de teléfono, correo electrónico y los links sociales (twitter, github, etc).

Modelos:
  1. Curriculum:
    • name: CharField
    • description: TextField
    • is_full: BooleanField
  2. Service:
    • name: CharField
    • slug: URLField
    • content: TextField
  3. Project:
    • name: CharField
    • slug: SlugField
    • url: URLField
    • service: ForeignKey(Project)
    • tags: ManyToManyField(
    • pictures: ((( MultipleImageField )))
    • description: TextField
    • pub_date: DateField
  4. Tag
    • name: CharField
    • slug: SlugField
Me gustaría saber qué opinas de como va la estructura hasta el momento (porfavor toma en cuenta que es mi primer proyecto con Django entonces no estoy tan "fogueado" en el tema.

Por cierto, me gustaría también saber si me puedes aclarar una duda; la cosa es que en el modelo Project, como habrás notado puse "((( MultipleImageField )))" y bien, pues me gustaría saber cuál es la forma correcta de integrar eso, estaba pensando en crear un modelo "Image" y luego likearlo con un ManyToMany, pero no sé si será lo más óptimo.
  #6 (permalink)  
Antiguo 01/10/2012, 17:54
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Arquitectura recomendada para un sitio con Django

Los modelos parecen bien, no necesitas y tampoco veo conveniente que hagas un app por modelo.

Ahora con MultipleImageFiled no es una relación many-to-many es una relación many-to-one (o llave foránea).

Comprobación:
Un proyecto puede tener varias imagenes (correcto).
Una imagen puede tener varios proyectos (incorrecto). ¿Por que habria que tener la screenshot-02.jpg en el proyecto A y B, que no son 2 proyectos diferentes?

Etiquetas: arquitectura, django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:08.