Estoy desarrollando una aplicación usando SQLAlchemy y wxPython que estoy tratando de mantener distribuida en módulos separados que consisten en lógica de negocios, ORM y GUI.¿Cómo organizar el código fuente de una aplicación hecha con SQLAlchemy y una interfaz gráfica?
No estoy del todo seguro de cómo hacer esto de forma pitonica.
Dado que mapping()
tiene que ser llamado orther para los objetos que se utilizarán, pensé en ponerlo en el __init__.py
de la lógica bussiness, pero manteniendo todas las definiciones de tabla dentro de un módulo separado orm.py
.
¿Debo mantener algo como:
/Business
/__init__.py
| mapping (module1.Class1, orm.table1)
|
/module1.py
Class1
/orm.py
import
table1 = Table()
/GUI
/main.py
| import business
/crud.py
o algo así
/Business
/__init__.py
| import
|
/module1.py
Class1
table1 = Table()
mapping (module1.Class1, orm.table1)
/GUI
/main.py
| import business
/crud.py
se recomienda el primer enfoque? ¿Hay alguna otra opción? He visto la segunda manera, pero no me gusta poner el código de manejo de la base de datos y el código de la lógica de negocios dentro del mismo módulo. ¿Lo estoy pensando demasiado? ¿Realmente no es un gran problema?
parece que esta pregunta podría tocar algo más que SQLAlchemy - las mejores prácticas Pythonic sobre cómo organizar código de proyecto que interactúa significativamente con una base de datos? – ariddell
@aridell: puede que tenga razón, pero SQLAlchemy tiene una forma específica de establecer las asignaciones, que puede o no ser diferente a la forma en que lo hacen otros ORM existentes o ORM personalizados. Pero definitivamente no es específico de wxPython. – voyager