烧瓶框架的peewee orm集成
Flask-PW3的Python项目详细描述
对于Flask框架,flask-pw3–Peewee形式的集成。
插件配置数据库连接并提供一些工具,如迁移 还有信号。它还为Flask-Debugtoolbar提供Peeweeorm支持
内容
Requirements
- Python2.7+,3.4+
- 小便3+
Usage
Settings
Flask-PW3设置(默认值):
# Connection URI PEEWEE_DATABASE_URI = 'sqlite:///peewee.sqlite' # Connection params (for example for pgsql: { encoding: 'utf-8' }) PEEWEE_CONNECTION_PARAMS = {} # Path to directory which contains migrations PEEWEE_MIGRATE_DIR = 'migrations' # Name of database table with migrations PEEWEE_MIGRATE_TABLE = 'migratehistory' # Path to module which contains you applications' Models # Needed by automatic migrations PEEWEE_MODELS_MODULE = '' # Models which should be ignored in migrations PEEWEE_MODELS_IGNORE = [] # Base models class # Use `db.Model` as your models' base class for automatically DB binding PEEWEE_MODELS_CLASS = <flask_pw.Model> # Don't connect to db when request starts and close when it ends automatically PEEWEE_MANUAL = False
Example
import peewee as pw from flask import Flask from flask_pw import Peewee app = Flask(__name__) app.config['PEEWEE_DATABASE_URI'] = 'sqlite:///:memory:' db = Peewee(app) class User(db.Model): name = pw.CharField(255) title = pw.CharField(127, null=True) active = pw.BooleanField(default=True) rating = pw.IntegerField(default=0) @User.post_save.connect def update(user, created=False): if created: # Do something
Migrations
如果使用烧瓶脚本,只需向管理器添加“db”命令即可:
manager = Manager(create_app) manager.add_command('db', db.manager)
并使用db create,db migrate和db rollback命令。
如果您使用flask>;=0.11将插件的命令连接到您的cli:
pw = Peewee(app) app.cli.add_command(pw.cli, 'db')
if __name__ == '__main__': with app.app_context(): app.cli()
Flask-Debugtoolbar
只需将flask pw.debugtoolbar.peeweedebugpanel添加到 应用程序配置:
DEBUG_TB_PANELS = [ 'flask_debugtoolbar.panels.versions.VersionDebugPanel', 'flask_debugtoolbar.panels.timer.TimerDebugPanel', 'flask_debugtoolbar.panels.headers.HeaderDebugPanel', 'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel', 'flask_debugtoolbar.panels.template.TemplateDebugPanel', 'flask_debugtoolbar.panels.sqlalchemy.SQLAlchemyDebugPanel', 'flask_debugtoolbar.panels.logger.LoggingPanel', 'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel', # Add the Peewee panel 'flask_pw.flask_debugtoolbar.PeeweeDebugPanel', ]
享受吧!
Bug tracker
如果您有任何建议、错误报告或 烦恼请向问题追踪者报告 在https://github.com/keigohtr/flask-pw3/issues
License
根据麻省理工学院的许可证(请参阅许可证)
如果你想对这个项目表示感谢,欢迎来到 寄明信片到:
Kirill Klenov pos. Severny 8-3 MO, Istra, 143500 Russia