【问题标题】:Getting the database connection from application context with Flask-Restful使用 Flask-Restful 从应用程序上下文获取数据库连接
【发布时间】:2014-08-19 15:16:07
【问题描述】:

我有一个使用 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,但给出的解决方案实际上并没有解决循环导入问题。

【问题讨论】:

  • 您分享的链接似乎指向了错误的地方。
  • 修复了链接,谢谢@dirn

标签: python flask flask-restful


【解决方案1】:

嗯,对于我的项目,我使用这种结构:

应用程序/__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()
...

当然不完美,但我没有这种循环导入问题。

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    相关资源
    最近更新 更多