2014-06-27 64 views
3

我已经开始使用Flask和Flask-SQLAlchemy构建Web应用程序。我在构建Web应用程序方面的经验非常有限,所以如果我不明确,我很抱歉。在多个程序之间共享SQLite3数据库

Web应用程序的数据库已由运行在服务器上的另一个程序构建。所以所有的表格都已经在数据库中预定义了。我的网络应用程序和服务器上运行的其他程序将读取&写入数据库的权限。

最近我决定重组我的应用程序,迎合类似于Django的模型 - 视图 - 控制器模式,并使用蓝图使事情更易于管理和整洁。这个https://github.com/mitsuhiko/flask/wiki/Large-app-how-to

... 
app_name/ 
    model.py 
    view.py 
    controller.py 
    __init__.py 
... 

相似,所以我已经做了一些教程和烧瓶SQLAlchemy的阅读了,但我不能让意义我的生活是我怎么定义的应用程序我的模型如果我的数据库已被其他程序预定义?。和如何将SQLAlchemy ORM与预定义的数据库一起使用?

以前,在我决定重组之前,我只是使用Pyhton的sqlite3库来抓取数据库中的东西并在网页上显示它。这不是美丽的,而且我构建事物的方式会快速失控。

回答

3

其他程序是否也使用sqlalchemy,以便您可以提升/共享其模型? 如果没有,你可以尝试反思:http://docs.sqlalchemy.org/en/latest/core/reflection.html 还是这个实验自动地图:http://docs.sqlalchemy.org/en/latest/orm/extensions/automap.html

而且你的问题不是关于这一点,但sqlite3的是一个文件数据库,而不是客户端 - 服务器数据库。不是说你会的,但你可能会遇到并发问题:

sqlite3 concurrent access

http://www.sqlite.org/lockingv3.html

操作系统和文件系统在此发挥作用。

+0

对于一个小应用程序,这些将起作用。但是(这对于OP来说)会很麻烦并且很难维护,因为如果需要更改任何数据库,则需要在两个地方进行更改。一个更好的模型是只有一个编写器到数据库,并暴露一个API的一切。不幸的是,你不能使用SQLAlchemy。 –

相关问题