Coder Social home page Coder Social logo

flask-pw's Introduction

The Flask-PW

The Flask-PW -- Peewee ORM intergration for Flask framework.

The plugin configures DB connection and provides some tools such as migrations and signals. It also provides Peewee ORM support for Flask-Debugtoolbar

Requirements

  • python 2.7+,3.4+

Installation

Flask-PW should be installed using pip: :

pip install flask-pw

Usage

Settings

Flask-PW settings (default values): :

# 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

If you use Flask-Script just add 'db' command to your manager: :

manager = Manager(create_app)
manager.add_command('db', db.manager)

And use db create, db migrate and db rollback commands.

If you use Flask >= 0.11 connect the plugin's command to your CLI: :

pw = Peewee(app)
app.cli.add_command(pw.cli, 'db')
if __name__ == '__main__':
    with app.app_context():
        app.cli()

Flask-Debugtoolbar

Just add flask_pw.debugtoolbar.PeeweeDebugPanel to Flask-Debugtoolbar panels in your application's configuration: :

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',
]

Enjoy!

Bug tracker

If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/flask-pw/issues

Contributing

Development of The Flask-pw happens at: https://github.com/klen/flask-pw

Contributors

License

Licensed under a MIT license (See LICENSE)

If you wish to express your appreciation for the project, you are welcome to send a postcard to: :

Kirill Klenov
pos. Severny 8-3
MO, Istra, 143500
Russia

flask-pw's People

Contributors

klen avatar pyup-bot avatar

Watchers

 avatar 长毛是狗 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.