V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Feiox
V2EX  ›  Flask

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

  •  
  •   Feiox ·
    feiox · 2014-09-19 20:04:53 +08:00 · 3618 次点击
    这是一个创建于 3710 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有一需求:Web 框架用 Flask 在同一个项目内(例:Project)目录结构如下

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

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

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

    P.S. 已用 Flask-SQLalchemy
    5 条回复    2014-09-21 13:41:21 +08:00
    bcxx
        1
    bcxx  
       2014-09-19 20:24:35 +08:00
    把 model 抽出来当作一个 package,各个 app 进行安装并 import 就好了。如果有不是用 flask-sqlalchemy 的 app,就用原始的 sqlalchemy 写法就好。
    reorx
        2
    reorx  
       2014-09-19 21:14:00 +08:00
    楼上 +1,把 model 层与 flask 解耦。其实 flask-sqlalchemy 除了让 sqlalchemy 的配置可以统一到 flask 配置中,没做多少与 flask 有关的事情,建议直接使用 sqlalchemy,并把数据库配置独立出来。
    shajiquan
        3
    shajiquan  
       2014-09-21 00:46:51 +08:00
    用 sqlalchemy 原生的吧。这样可以随意用在任何一个项目里边,如果是 flask-sqlalchemy 的话,就不行了。你可以自己把 flask-sqlalchemy 的分页啊什么的弄过去。
    geew
        4
    geew  
       2014-09-21 11:17:55 +08:00
    model独立开来不就好了吗 别跟项目耦合太紧 直接用sqlalchemy就行了嘛
    shajiquan
        5
    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 只不过封装了一下,建议不要和任何一个框架耦合。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2561 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.