Soy relativamente nuevo en python y en el motor de aplicaciones, y acabo de terminar mi primer proyecto. Consiste en varios archivos * .py (generalmente archivo py para cada página en el sitio) y archivos temple respectivamente para cada archivo py. Además, tengo un gran archivo PY que tiene muchas funciones que son comunes a muchas páginas, en el que también declaro las clases de db.Model (que es el tipo de almacén de datos).Estructura de proyecto de Python y App Engine
Mi pregunta es cuál es la convención (si existe) de organizar estos archivos. Si creo un model.py con las clases de datos, ¿debería estar en un paquete diferente? ¿Dónde debo colocar mis archivos de plantilla y todos los archivos py que manejan cada página (deberían estar en el mismo directorio que el gran archivo común PY)?
He intentado buscar MVC y tales implementaciones en línea, pero hay muy pocas.
Gracias,
Joel
¡Gracias por la respuesta rápida y la referencia a un artículo muy bueno! Agradecería si me puede aclarar algunas cosas: 1) ¿por qué usaría un archivo de modelo diferente para cada página? Parece que, por lo general, la mayoría de las páginas usan las mismas clases (modelos) en sus páginas, por lo que es difícil dividirlas. 2) Si lo entiendo correctamente, controller1.py tendrá un controlador para foo y control2 tendrá un controlador para la barra, ¿no? Entonces, si desea realizar cambios en el almacén de datos, por ejemplo, llamaría a una función en utilities.py. ¿Lo entendí bien? Gracias! – Joel
Solo concéntrese en la estructura de los directorios y no en lo que puse adentro, es solo un ejemplo :). ¡Podría usar solo un archivo para todos los modelos y un archivo para todos los controladores! Típicamente uso una estructura como esta cuando desarrollo en la web (usando gae \ web.py). – systempuntoout
va a funcionar :) Solo quería asegurarme de que con "controladores" se refiere al archivo que contiene los manejadores. Y una última cosa (lo prometo): básicamente, los "controladores" y los "modelos" son paquetes (que, por lo que yo entiendo, deben contener el archivo _init_.py), mientras que las vistas son un directorio regular (sin el archivo _init.py), ¿verdad? – Joel