我有一个使用Flask-Restful的应用程序,我不知道如何从应用程序上下文中获取数据库连接信息。
这是我到目前为止所做的:
app.py:
....
from flask.ext.restful import reqparse, abort, Api, Resource
app = Flask(__name__)
app.config['DATABASE'] = 'my.db'
api = Api(app)
api.add_resource(Foo, '/')
foo.py
...
from flask.ext.restful import Resource
class Foo(Resource):
def __init__(self):
self.db = get_db()
def post(self):
do_stuff_with_db()
我希望get_db方法看起来像:
def get_db():
return database.connect(app.config['DATABASE'])
问题是为了将app.config放到foo.py中,我创建了一个循环引用。得到这个有干净,有希望的方法吗?
我见过this question,但给出的解决方案实际上并没有解决循环导入问题。
答案 0 :(得分:2)
嗯,对于我的项目,我使用这种结构:
...
app = Flask(__name__)
...
db = SQLAlchemy(app) #because I use sqlalchemy
...
import application.core
from application.api import resource
...
# api definition
from application import db
...
db.doWhatEverYouWant()
...
这当然不完美,但我没有这种循环导入问题。