烧瓶框架的peewee orm集成

Flask-PW3的Python项目详细描述


对于Flask框架,flask-pw3–Peewee形式的集成。

插件配置数据库连接并提供一些工具,如迁移 还有信号。它还为Flask-Debugtoolbar提供Peeweeorm支持

Requirements

  • Python2.7+,3.4+
  • 小便3+

Installation

flask-pw3应使用pip安装:

pip install flask-pw3

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 createdb migratedb 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
相当于加密流。NET在Java 安卓中的应用?   java Android:加载片段时启动动画   java文件从指定的绝对路径上载到服务器   java是否可以自定义Spring缓存抽象所使用的序列化?   当客户端输入为无效字符串时,java从JAXWS接收空的BigDecimal   将数据库从MySQL更改为SQLite后出现Java项目错误   java PrimeFaces在datatable中自定义行编辑器   java在数组中对字符串和双类类型进行排序   图像Java:如何在GridLayout中嵌套JPanel?   java searchByEmail方法不起作用   java运行时。exec(字符串)限制字符串   java通过异步运行lambda访问方法参数   java为什么这个条件语句不编译?   在javajar中添加和使用文件,就像它们在文件夹中一样   使用java查找带有正则表达式的子字符串   在awt所在的地方荡秋千。属性,以及如何在Java插件中提供它的本地化版本