18

我正在使用带有蓝图的 Flask 来为我的网站获取框架,并且在我的应用程序深处使用配置类时遇到问题。

这是一些虚拟代码,解释了我如何设置所有内容:

网站配置.py

class Config(object):
  pass

class ProductionConfig(Config):
  DEBUG = False

class DevelopmentConfig(Config):
  DEBUG = True

网站/__ 初始化 __.py

# Some app code and config loading
app = Flask('website')
app.config.from_object('websiteconfig.DevelopmentConfig')

# Import some random blueprint
from website import users
app.register_blueprint(users.api)

# This works:
# print app.config['DEBUG']

网站/用户/__ 初始化 __.py

from flask import Blueprint
from website.users.models import test
api = Blueprint('users', __name__, url_prefix='/users')

# This works:
# print api.config['DEBUG']

# From models
print test()

网站/用户/models.py

# How can I reach the config variables here?
def test():
    # I want config['DEBUG'] here

如何访问存储在包app.py深处加载的类中的配置变量users

from website import app(在models.py中)这样的循环导入是可接受的解决方案吗?

如果没有,是否有一些我错过的简单解决方案?

4

1 回答 1

25

我相信你可以使用烧瓶的 current_app 成语。

http://flask.pocoo.org/docs/api/#flask.current_app

from flask import current_app

def test():
  return current_app.config.get('some_config_value')
于 2012-11-19T21:14:14.777 回答