Flask 与 项目内其他 SQLalchemy 如何共用 Models 文件?

2014-09-19 20:04:53 +08:00
 Feiox
有一需求:Web 框架用 Flask 在同一个项目内(例:Project)目录结构如下

myProject
|- app1
|- app2
|- Flask-app

app1 是一个简单爬虫, app2 是一个数据分析,能不能定义一组 Model 使这三个 app 都共用这一组 model,并且使项目结构如下:

myProject
|- app1
|- app2
|- Flask-app
|- models

P.S. 已用 Flask-SQLalchemy
3553 次点击
所在节点    Flask
5 条回复
bcxx
2014-09-19 20:24:35 +08:00
把 model 抽出来当作一个 package,各个 app 进行安装并 import 就好了。如果有不是用 flask-sqlalchemy 的 app,就用原始的 sqlalchemy 写法就好。
reorx
2014-09-19 21:14:00 +08:00
楼上 +1,把 model 层与 flask 解耦。其实 flask-sqlalchemy 除了让 sqlalchemy 的配置可以统一到 flask 配置中,没做多少与 flask 有关的事情,建议直接使用 sqlalchemy,并把数据库配置独立出来。
shajiquan
2014-09-21 00:46:51 +08:00
用 sqlalchemy 原生的吧。这样可以随意用在任何一个项目里边,如果是 flask-sqlalchemy 的话,就不行了。你可以自己把 flask-sqlalchemy 的分页啊什么的弄过去。
geew
2014-09-21 11:17:55 +08:00
model独立开来不就好了吗 别跟项目耦合太紧 直接用sqlalchemy就行了嘛
shajiquan
2014-09-21 13:41:21 +08:00
我一直用 tornado + plain sqlalcmey 做开发,前段时间开始用 flask,看到 flask-sqlalchemy 挺简单,加了些封装的小工具,挺不错。不过后来想了想还是用 plain sqlalchemy 来做 models,这样的话:
flask 应用完全可以使用,不存在任何问题。
我另外的 tornado 应用也可以直接使用,不存在任何问题。
我另外的 udp server 也可以直接使用,不存在任何问题。

sqlalchemy 本身就可以完成 N 多事情,flask 只不过封装了一下,建议不要和任何一个框架耦合。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/134530

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX