Peewee FlaskDB不接受max_connections等关键字参数问题求助
问题根因
你使用的普通peewee.MySQLDatabase类本身不支持max_connections、stale_timeout这两个参数,这两个参数是连接池封装类的专属配置项,你参考的官方示例使用的是PostgreSQL的连接池类playhouse.pool.PooledPostgresqlDatabase,并非原生普通数据库类,所以直接复用参数到普通MySQL类会报错。
解决方案
将配置中的engine替换为MySQL对应的连接池类即可,修改后的DATABASE配置如下:
DATABASE = { 'name': DB_NAME, 'engine': 'playhouse.pool.PooledMySQLDatabase', 'user': DB_USERNAME, 'passwd': DB_PASSWORD, 'host': DB_HOST, 'port': DB_PORT, 'max_connections': 32, 'stale_timeout': 300 }
额外注意事项
- 标准安装的peewee会自带playhouse扩展,如果运行提示找不到PooledMySQLDatabase,重新安装完整peewee包即可
- 如果需要添加MySQL SSL配置,直接在配置字典中新增对应参数即可,例如
'ssl': {'ca': '/path/to/ca.pem'},参数会直接透传给底层MySQL连接驱动,连接池类无需额外适配。
内容的提问来源于stack exchange,提问作者SimonB
相关产品推荐
相关产品推荐

