在多个程序之间共享SQLite3数据库
我开始用Flask和Flask-SQLAlchemy构建一个网页应用,但我在这方面的经验非常有限,所以如果我说得不清楚,请多包涵。
这个网页应用的数据库是由服务器上运行的另一个程序提前建好的,所以所有的表格都已经在数据库里定义好了。我的网页应用和那个程序都可以对数据库进行读写操作。
最近,我决定重新组织我的应用,采用类似Django的模型-视图-控制器(MVC)架构,并使用蓝图来让代码更整洁、更易管理。类似于这个 链接
...
app_name/
model.py
view.py
controller.py
__init__.py
...
我做了一些教程,也了解了一些Flask-SQLAlchemy的知识,但我始终搞不明白的是如果我的数据库已经被另一个程序定义好了,我该如何在应用中定义我的模型呢? 还有我该如何在一个预先定义的数据库上使用SQLAlchemy的ORM呢?
在我决定重新组织之前,我只是用Python的sqlite3库从数据库中获取数据并在网页上显示。这种做法不太好,而且我当时的结构很快就会变得混乱。
1 个回答
3
另一个程序也使用sqlalchemy吗?这样你就可以共享它的模型了。如果没有,你可以试试反射功能:http://docs.sqlalchemy.org/en/latest/core/reflection.html。或者可以看看这个实验性的自动映射功能:http://docs.sqlalchemy.org/en/latest/orm/extensions/automap.html
而且你的问题并不是关于这个的,但sqlite3是一个文件数据库,不是客户端-服务器数据库。我不是说你一定会遇到,但你可能会碰到并发问题:
http://www.sqlite.org/lockingv3.html
操作系统和文件系统在这方面也会起作用。