如何整理使用SQLAlchemy制作的具有图形界面的应用程序的源代码?
我正在使用 SQLAlchemy 和 wxPython 开发一个应用程序,我试图将其分布在由业务逻辑、ORM 和 GUI 组成的单独模块中。
我不完全确定如何以Python方式做到这一点。
鉴于要使用的对象必须调用 mapping()
,我想到将其放在业务逻辑的 __init__.py
中,但保留所有单独的 orm.py
模块中的表定义。
我应该保留类似的内容:
/Business
/__init__.py
| mapping (module1.Class1, orm.table1)
|
/module1.py
Class1
/orm.py
import
table1 = Table()
/GUI
/main.py
| import business
/crud.py
或者类似
/Business
/__init__.py
| import
|
/module1.py
Class1
table1 = Table()
mapping (module1.Class1, orm.table1)
/GUI
/main.py
| import business
/crud.py
推荐第一种方法吗?还有其他选择吗?我见过第二种方式,但我不喜欢将数据库处理代码和业务逻辑代码放在同一个模块中。是我想太多了吗?真的没有那么大的问题吗?
I'm developing an application using SQLAlchemy and wxPython that I'm trying to keep distributed in separated modules consisting of Business logic, ORM and GUI.
I'm not completely sure how to do this in a pythonic way.
Given that mapping()
has to be called in orther for the objects to be used, I thought of putting it on the __init__.py
of the bussiness logic, but keeping all the table definitions within a separate orm.py
module.
Should I keep something like:
/Business
/__init__.py
| mapping (module1.Class1, orm.table1)
|
/module1.py
Class1
/orm.py
import
table1 = Table()
/GUI
/main.py
| import business
/crud.py
or something like
/Business
/__init__.py
| import
|
/module1.py
Class1
table1 = Table()
mapping (module1.Class1, orm.table1)
/GUI
/main.py
| import business
/crud.py
Is the first approach recommended? Is there any other option? I've seen the second way, but I don't like putting the database handling code and the bussiness logic code within the same module. Am I overthinking it? Is really not that big a problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我发现 Jp Calderone 的 这篇文档 是关于如何(不)构建 Python 的一个很好的提示项目。遵循它,你不会有任何问题。我将在这里重现全文:
I find this document by Jp Calderone to be a great tip on how to (not) structure your python project. Following it you won't have issues. I'll reproduce the entire text here: