-
Notifications
You must be signed in to change notification settings - Fork 61
WIP_v0_9_customize_app_zh
Neuron Teckid edited this page Apr 28, 2016
·
1 revision
Redis Ctl 支持通过继承 app.RedisCtl
类型并覆盖其中一些成员函数来定制部分行为. 直接修改 config.py 或通过传入字符串类型的环境变量 APP_CLASS
最终将 config.App
类型替换成定制的类型.
例如, 在 override.py 中实现此类型, 命名为 MyApp
, 然后使用
APP_CLASS=override.MyApp python main.py
指定之并启动; 或者直接修改 config.py 将最后一行修改为
import override
App = override.MyApp
类型 app.RedisCtl
的通用函数如下
# 构造函数; 继承自此类的子类应当在自身的构造函数开始处调用之
# - config: 全局配置; 通常情况下, 使用 import config; App(config) 来构造之
__init__(self, config)
# 根据全局 config 中 MYSQL_* 配置项构造出适用于 SQLAlchemy 的 mysql 数据库访问地址
# 如果使用其他数据库, 覆盖此函数并修改相应实现
db_uri(self, config)
# 额外的 Flask Blueprint; 此函数默认返回空列表; 如果应用需要加载额外的 Blueprint, 覆盖之
# 返回值列表中的每个元素应为一个 Blueprint 对象
ext_blueprints(self)
其他定制支持