flask 配置

SQLAlchemy 相关

SQLALCHEMY_COMMIT_ON_TEARDOWN

设置是否在每次请求结束后自动提交数据库中的变动。如果该常量为True,则每次请求结束后都会自动提交数据库中的变动。

1
SQLALCHEMY_COMMIT_ON_TEARDOWN = True

源码

1
2
3
4
5
6
7
8
@app.teardown_appcontext
def shutdown_session(response_or_exc):
if app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']:
if response_or_exc is None:
self.session.commit()

self.session.remove()
return response_or_exc

SQLALCHEMY_DATABASE_URI

用于连接数据的数据库。其格式为:mysql://username:password@server/db?编码
注意默认使用mysqldb连接数据库,要使用pymysql就需要用mysql+pymysql的格式;

1
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://caiwp:mysql@192.168.1.23:3307/tms_mysql?charset=utf8'

SQLALCHEMY_BINDS

一个映射绑定 (bind) 键到 SQLAlchemy 连接 URIs 的字典。他可以用来连接多个数据库。

1
2
3
4
SQLALCHEMY_BINDS = {
'users': 'mysqldb://localhost/users',
'appmeta': 'sqlite:////path/to/appmeta.db'
}

上面除了默认的连接外,又连接了两个数据库,分别命名users,appmeta。在创建模型的时候可以为相应的操作定制化;
更多的详细参考:http://www.pythondoc.com/flask-sqlalchemy/binds.html#binds

SQLALCHEMY_ECHO

如果设置成 True,SQLAlchemy 将会记录所有发到标准输出(stderr)的语句,这对调试很有帮助;默认为false;

1
SQLALCHEMY_ECHO = True

SQLALCHEMY_RECORD_QUERIES

可以用于显式地禁用或者启用查询记录。查询记录 在调试或者测试模式下自动启用。一般我们不设置。

SQLALCHEMY_NATIVE_UNICODE

可以用于显式地禁用支持原生的unicode。

SQLALCHEMY_POOL_SIZE

数据库连接池的大小。默认是数据库引擎的默认值 (通常是 5)。

1
SQLALCHEMY_POOL_SIZE = 10

SQLALCHEMY_TRACK_MODIFICATIONS

如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存,如果不必要的可以禁用它。

1
SQLALCHEMY_TRACK_MODIFICATIONS = Flase

SQLALCHEMY_MAX_OVERFLOW

控制在连接池达到最大值后可以创建的连接数。当这些额外的连接使用后回收到连接池后将会被断开和抛弃。保证连接池只有设置的大小;

1
SQLALCHEMY_MAX_OVERFLOW = 5

SQLALCHEMY_POOL_TIMEOUT

指定数据库连接池的超时时间。默认是 10。

1
SQLALCHEMY_POOL_TIMEOUT = 10

SQLALCHEMY_POOL_RECYCLE

自动回收连接的秒数,默认值 7200(2小时),也就是说如果连接池中有连接2个小时被闲置,那么其会被断开和抛弃;并创建新的连接放到连接池中。默认情况下MySQL会自动移除 time_waitout 或者超过 time_waitout 时间的连接。

1
SQLALCHEMY_POOL_RECYCLE = 1200

flask 配置
https://flepeng.github.io/021-Python-32-框架-Flask-flask-配置/
作者
Lepeng
发布于
2021年3月31日
许可协议