Skip to main content

Flask-Storm

Test status PyPI version status

Flask-Storm is an extension for Flask that adds support for Canonical’s ORM Storm to your application. Flask-Storm automatically opens and closes database connections on demand when requests need them.

Example

Access to the database is done using the store application context local. Within an application context this variable holds a reference to a Storm Store instance. If no connection is opened it will automatically open one. When the application context is torn down, normally after the request has returned, the store is closed.

from flask_storm import store
from storm.locals import Int, Unicode

class User(object):
    __storm_table__ = "users"

    id = Int(primary=True)
    name = Unicode()


@app.route("/")
def index():
    # Get name of user with ID 1
    return store.get(User, 1).name

Installation

pip install flask_storm[fancy]

This installs Flask-Storm with SQL highlighting and reformatting support. If you do not want this drop the fancy.

pip install flask_storm

Documentation

Documentation is available on https://runfalk.github.io/flask-storm

Development

# Setup environment
python3 -m venv --prompt=flask-storm .venv
source .venv/bin/activate
pip install --upgrade pip setuptools
pip install -e .[dev,fancy]

# Run test suite
pytest

# You can test all supported python versions in one go using tox
tox

# Build documentation
sphinx-build doc/ doc-build/

# Run auto formatter
black flask_storm/ tests/ setup.py

# Run linter
flake8 flask_storm/ tests/ setup.py

Changelog

Version are structured like the following: <major>.<minor>.<bugfix>. Unless explicitly stated, changes are made by Andreas Runfalk.

Version 1.0.0

Released on 23rd May 2021

  • Dropped support for Python 3.3

  • Dropped support for Python 3.4

  • Dropped support for Python 3.5

  • Updated documentation to work with newer Sphinx versions

  • Support upstream Storm 0.21 or newer (thank you Colin Watson)

  • Fixed broken placeholder replacement when using SQL statement printing in Python 3 (thank you Colin Watson)

  • Fixed problem where fancy would always be set to False regardless of the provided value when it was specified to a tracer.

Note that dropped Python versions may still work, but that’s accidental rather than intentional.

Version 0.2.0

Released on 8th October 2018

  • Added Python 3 support

  • Removed storm as a dependency since storm-legacy can be used as well

Version 0.1.2

Released on 14th June 2017

  • Fixed an issue with query logging in flask shell and PostgreSQL

Version 0.1.1

Released on 9th June 2017

  • Fixed issue with new versions of sqlparse by bumping its version requirement

Version 0.1.0

Released on 19 July 2016

  • Initial release

Release files for Flask-Storm 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Flask-Storm 1.0.0
File Size Uploaded
Flask-Storm-1.0.0.tar.gz 23.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Flask-Storm 1.0.0
File Interpreter ABI Platform
Flask_Storm-1.0.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 35.6 kB

Release files / Flask-Storm-1.0.0.tar.gz

Download URL Flask-Storm-1.0.0.tar.gz
Size 23.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4f342e497dbfc369106c13dd7fb3785614b42ce7c27023a8f81c32b527c5e44f
BLAKE2b-256 checksum
How to use checksums
3f8b68b680f1af68ee287180a67ec2883bcf19c83de60cbae901743a4bf1e0f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

Release files / Flask_Storm-1.0.0-py2.py3-none-any.whl

Download URL Flask_Storm-1.0.0-py2.py3-none-any.whl
Size 11.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
aa6655c0d0479b6c559733a05b257f84073e5e6c8390f3f4646539d877dd4705
BLAKE2b-256 checksum
How to use checksums
acbb0d4fa6e2432a2cf3087f2a4c91005fff0caf8f00465c5697dfdf545b1da4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page