首頁  >  問答  >  主體

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

有一需求:Web 框架用 Flask 在同一个项目内(例:Project)目录结构如下

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

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

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

P.S. 已用 Flask-SQLalchemy

伊谢尔伦伊谢尔伦2765 天前369

全部回覆(3)我來回復

  • PHP中文网

    PHP中文网2017-04-17 13:35:30

    可以,最簡單的方式是,sys.path.append('models所在的目錄'),然後就可以import了

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 13:35:30

    如果多個框架混用的話,那你就用純 sqlalchemy,不要用 flask-sqlalchemy。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 13:35:30

    1.在專案根目錄下,也就是你的myProject目錄下,建立一個initdb.py,使用者初始化SQLAlchemy,例如:

    from flask.ext.sqlalchemy import SQLAlchemy
    
    __all__ = ['db']
    
    db = SQLAlchemy()
    

    2、同樣,根目錄下建立一個共用的application.py文件,裡面用來建立app,例如:

    from initdb import db
    
    def create_app(app):
        db.init_app(app)
    
        return app
    

    3、在每個單獨app中建立__init__.py文件,用於初始化app,例如:

    from flask import Flask
    
    app = Flask(__name__)
    

    4、在每個單獨app中再建立app.py文件,用於啟動該單獨app,例如:

    import sys
    sys.path.append('你的项目根目录,也就是你的myProject')
    
    from application import create_app
    from app1 import app as _app
    
    application = create_app(_app)
    if __name__ == "__main__":
        application.run(port=9000, host='0.0.0.0', debug=True)
    

    5、可以在根目錄下建立一個models目錄,用來存放所有的資料庫模型。
    6.在view中使用的時候只需要將需要的import進來就可以了。

    回覆
    0
  • 取消回覆