配置管理

您所在的位置:网站首页 flask的session默认保存在哪 配置管理

配置管理

2024-07-14 02:55| 来源: 网络整理| 查看: 265

实例文件夹¶ Changelog

New in version 0.8.

Flask 0.8 引入了实例文件夹。 Flask 花了很长时间才能够直接使用应用文件夹 的路径(通过 Flask.root_path )。这也是许多开发者载入应用文件夹 外的配置的方法。不幸的是这种方法只能用于应用不是一个包的情况下,即根路 径指向包的内容的情况。

Flask 0.8 引入了一个新的属性: Flask.instance_path 。它指向一个 新名词:“实例文件夹”。实例文件夹应当处于版本控制中并进行特殊部署。这 个文件夹特别适合存放需要在应用运行中改变的东西或者配置文件。

可以要么在创建 Flask 应用时显式地提供实例文件夹的路径,要么让 Flask 自 动探测实例文件夹。显式定义使用 instance_path 参数:

app = Flask(__name__, instance_path='/path/to/instance/folder')

请记住,这里提供的路径 必须 是绝对路径。

如果 instance_path 参数没有提供,那么会使用以下缺省位置:

未安装的模块:

/myapp.py /instance

未安装的包:

/myapp /__init__.py /instance

已安装的模块或包:

$PREFIX/lib/pythonX.Y/site-packages/myapp $PREFIX/var/myapp-instance

$PREFIX 是你的 Python 安装的前缀。可能是 /usr 或你的 virtualenv 的路径。可以通过打印 sys.prefix 的值来查看当前的前缀 的值。

既然可以通过使用配置对象来根据关联文件名从文件中载入配置,那么就可以通 过改变与实例路径相关联的文件名来按需要载入不同配置。在配置文件中的关联 路径的行为可以在 “关联到应用的根路径”(缺省的)和 “关联到实例文件夹” 之间变换,具体通过应用构建函数中的 instance_relative_config 来实现:

app = Flask(__name__, instance_relative_config=True)

以下是一个完整的配置 Flask 的例子,从一个模块预先载入配置,然后从实例文 件夹中的一个配置文件(如果这个文件存在的话)载入要重载的配置:

app = Flask(__name__, instance_relative_config=True) app.config.from_object('yourapplication.default_settings') app.config.from_pyfile('application.cfg', silent=True)

通过 Flask.instance_path 可以找到实例文件夹的路径。Flask 还提供 一个打开实例文件夹中的文件的快捷方法: Flask.open_instance_resource() 。

举例说明:

filename = os.path.join(app.instance_path, 'application.cfg') with open(filename) as f: config = f.read() # or via open_instance_resource: with app.open_instance_resource('application.cfg') as f: config = f.read()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3