Muffin框架的Peewee集成
项目描述
muffin-peewee – Peewee ORM集成到Muffin框架。
需求
python >= 3.7
安装
Muffin Peewee应使用pip安装
pip install muffin-peewee
可选地,您可以使用postgresql驱动程序安装它
pip install muffin-peewee[postgres]
用法
from muffin import Application
from muffin_peewee import Plugin as Peewee
# Create Muffin Application
app = Application('example')
# Initialize the plugin
# As alternative: jinja2 = Jinja2(app, **options)
db = Peewee()
db.setup(app, PEEWEE_CONNECTION='postgres+pool+async://postgres:postgres@localhost:5432/database')
选项
名称 |
默认值 |
描述 |
CONNECTION |
sqlite+async:///db.sqlite |
数据库URL |
CONNECTION_PARAMS |
{} |
DB连接的附加参数 |
MANAGE_CONNECTIONS |
True |
安装一个中间件以自动获取db连接 |
MIGRATIONS_ENABLED |
True |
启用迁移 |
MIGRATIONS_PATH |
"migrations" |
设置迁移文件夹的路径 |
您可以在初始化插件时提供选项
db.setup(app, connection='DB_URL')
或在内置 Muffin.Application 配置中使用 PEEWEE_ 前缀进行设置
PEEWEE_CONNECTION = 'DB_URL'
Muffin.Application 配置选项不区分大小写
查询
@db.register class Test(peewee.Model): data = peewee.CharField() @app.route('/') async def view(request): return [t.data for t in Test.select()]
管理连接
# Set configuration option `MANAGE_CONNECTIONS` to False # Use context manager @app.route('/') async def view(request): async with db: # Work with db # ...
迁移
创建迁移
$ muffin example:app pw_create [NAME] [--auto]
运行迁移
$ muffin example:app pw_migrate [NAME] [--fake]
回滚迁移
$ muffin example:app pw_rollback [NAME]
列出迁移
$ muffin example:app pw_list
错误跟踪器
如果您有任何建议、错误报告或烦恼,请向https://github.com/klen/muffin-peewee/issues的issue tracker报告
贡献
Muffin Peewee的开发发生在这里:https://github.com/klen/muffin-peewee
贡献者
klen (Kirill Klenov)
许可
在MIT许可证下授权。