Peewee ORM integration for Flask framework
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file Flask-PW-1.1.3.tar.gz.
File metadata
- Download URL: Flask-PW-1.1.3.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
146fb499d3b334d9e2537d89fc67b937deeb80644f3fe398327ed0989e1e02a3
|
|
| MD5 |
c50c1cc648b3bbb8d43e80b0b2a1766d
|
|
| BLAKE2b-256 |
db2fa0b9c33438c24050d55835c0e126ad97a6a53d31abcbf7daad9f1b70b877
|
File details
Details for the file Flask_PW-1.1.3-py2.py3-none-any.whl.
File metadata
- Download URL: Flask_PW-1.1.3-py2.py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d7edc466957aebce65943e8896aafc29edb4903e0d0f9c8993b10b7a63665e
|
|
| MD5 |
c7d38bed4f18d768d8166452e8a0f8ad
|
|
| BLAKE2b-256 |
ae08c5ee0abf4ed209a19eb96aa7484dae7aa919b9bdc6ccf6e72431a050e5ee
|