Zajmuję się tworzeniem aplikacji przy użyciu SQLAlchemy i wxPython, które staram się przechowywać w oddzielnych modułach składających się z logiki biznesowej, ORM i GUI.Jak ustawić kod źródłowy aplikacji wykonanej przy pomocy SQLAlchemy i interfejsu graficznego?
Nie jestem do końca pewien, jak to zrobić w sposób pytonowy.
Zważywszy, że mapping()
musi być wywołana w Orther dla obiektów mają być stosowane, myślałem o umieszczenie go na __init__.py
z logiką gospodarczą, ale zachowując wszystkie definicje tabel w osobnym module orm.py
.
powinienem trzymać coś takiego:
/Business
/__init__.py
| mapping (module1.Class1, orm.table1)
|
/module1.py
Class1
/orm.py
import
table1 = Table()
/GUI
/main.py
| import business
/crud.py
lub coś podobnego
/Business
/__init__.py
| import
|
/module1.py
Class1
table1 = Table()
mapping (module1.Class1, orm.table1)
/GUI
/main.py
| import business
/crud.py
Czy pierwsze podejście zalecane? Czy jest jakaś inna opcja? Widziałem drugi sposób, ale nie podoba mi się umieszczanie kodu obsługi bazy danych i kodu logiki biznesowej w tym samym module. Czy nad nim zastanawiam? Czy naprawdę nie jest tak dużym problemem?
Wygląda na to, że to pytanie może dotknąć coś więcej niż tylko SQLAlchemy - jakieś pytonowe sprawdzone metody organizowania kodu projektu, które są w znacznym stopniu powiązane z bazą danych? – ariddell
@aridell: możesz mieć rację, ale SQLAlchemy ma określony sposób ustawiania mapowań, które mogą, ale nie muszą, różnić się od tego, jak robią to inne istniejące ORMy lub niestandardowe ORMy. Ale zdecydowanie nie jest to specyficzne dla wxPython. – voyager