1

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 に取得するために、循環参照を作成することです。これを取得するためのクリーンでうまくいけば偶像的な方法はありますか?

私はこの質問を見ましたが、与えられた解決策は実際には循環インポートの問題を解決しません。

4

1 に答える 1

2

私のプロジェクトでは、次のような構造を使用しています。

アプリケーション/__init__.py

...
app = Flask(__name__)
...
db  = SQLAlchemy(app) #because I use sqlalchemy
...
import application.core 

アプリケーション/core.py

from application.api import resource
...
# api definition

アプリケーション/api/resource.py

from application import db
...
db.doWhatEverYouWant()
...

確かに完璧ではありませんが、そのような循環インポートの問題はありません。

于 2014-08-19T17:06:22.493 に答える