python - Flask 与 项目内其他 SQLalchemy 如何共用 Models 文件?
伊谢尔伦
伊谢尔伦 2017-04-17 13:33:30
0
3
370

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

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

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

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

P.S. 已用 Flask-SQLalchemy

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(3)
洪涛

可以,最简单的方式是,sys.path.append('models所在的目录'),然后就可以import了

Peter_Zhu

如果多个框架混用的话,那你就用纯 sqlalchemy,不要使用 flask-sqlalchemy。

Ty80

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进来就可以了。

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!