used - python pyramid
OrganizaciĆ³n del proyecto Frasco/Botella (5)
No veo cómo podría haber alguna forma de evitar que esto funcione. Flask y Bottle, como Django, son solo Python debajo, y Python te permite dividir los archivos en módulos. Siempre que importe las funciones relevantes en el script principal, funcionarán exactamente como si estuvieran definidas allí.
Estuve investigando microframeworks para Python, y me he encontrado con dos opciones interesantes, Flask y Bottle. cada uno tiene algunas características similares. Una cosa que noté es que todos los sitios de ejemplo muestran todo el código de la aplicación ubicado dentro de un solo archivo de Python. Obviamente, incluso para sitios de tamaño moderado, esto sería difícil de manejar con bastante rapidez. ¿Alguno (o ambos) de estos marcos admite la división entre diferentes archivos y, de ser así, cómo se podría lograr?
Estoy familiarizado con Django, y me gusta cómo está un poco más estructurado, pero prefiero usar algo más liviano, pero aún poderoso.
Sé que algunas personas han empezado a usar mi propio artículo para hacer esto con Flask, aunque obviamente hay otras formas de hacerlo en función del tamaño del proyecto; incluso dejo caer el módulo de tipo de directorio para un archivo basado en uno para proyectos más pequeños. Eche un vistazo a http://www.cols-code-snippets.co.uk/2011/02/my-take-on-flask-application-skeleton.html
No tengo ninguna experiencia con Bottle, pero eche un vistazo a los documentos de Flask en aplicaciones más grandes. Todas las aplicaciones de mi Flask usan múltiples objetos del Module
Frasco como esa página recomienda, una por cada módulo de Python, y parece funcionar bien.
Una cosa agradable de los objetos del Module
es que puede personalizar el despacho en cada uno para crear "dominios" de enrutamiento de URL en su aplicación. Así que, por ejemplo, intento imitar una aplicación de Windows en algunos de mis códigos, así que tengo un CaseInsensitiveModule
que hace un despacho insensible a las mayúsculas / minúsculas y RemoteModule
un RemoteModule
para convertir las solicitudes HTTP en métodos Python usando el sistema de enrutamiento Flask / Werkzeug .
(Tenga en cuenta que en las versiones actuales de Flask, los Module
s ahora son Blueprint
s).
Recientemente publiqué una especie de tutorial sobre cómo comenzar a utilizar Bottle + Jinja2 en Google App Engine. Mi énfasis aquí es sobre cómo organizar los archivos del proyecto. Puede obtener algo que pueda usar: http://codeaspoetry.wordpress.com/2011/11/27/how-to-build-a-web-app-using-bottle-with-jinja2-in- Motor de aplicaciones de Google/
Realmente depende de lo que estés tratando de lograr, para el servicio de micro / aplicaciones / sitios web el frasco es muy sencillo y liviano. Si planeas que tu aplicación crezca antes de tiempo, Flask podría ser una buena opción para ti porque tiene muchas extensiones. Tenemos alrededor de 40 a 50 micro servicios escritos en botella y nunca tuvimos problemas.