Skip to main content

Middleware for use Storm ORM in WSGI applications

Project description

Introduction

Storm is a fast, small and powerful object-relational mapper. Try it to use in web-aware applications.

WSGI application mainly miltithreaded, but Store object is not thread safe.

Middlestorm middleware manage Store objects (one per thread) and add it into environ dictonary.

Simple example

There are 3 ways to create middleware:
  • class

  • decorator

  • Paste configuration

Class middleware:

from wsgiref.simple_server import make_server
from storm.database import create_database

from middlestorm import MiddleStorm

def storm_app(environ, start_response):
    store = environ['storm.store']
    # ...

db = create_database('postgres://user:password@host/base')
app = MiddleStorm(storm_app, db)

make_server('', 8000, app).serve_forever()

Decorator middleware:

from wsgiref.simple_server import make_server
from storm.database import create_database

import middlestorm

@middlestorm.decorator(create_database('postgres://user:password@host/base'))
def storm_app(environ, start_response):
    store = environ['storm.store']
    # ...

make_server('', 8000, storm_app).serve_forever()

To create middleware via Paste configuration, add a stanza to the .ini file:

[filter:middlestorm]
use = middlestorm#middlestorm
db_uri = sqlite:myapp.db

and then add that filter to the Paste pipeline (again, in the .ini file):

[pipeline:main]
pipeline =
    middlestorm
    myapp

By default Store placed in variable storm.store. This can be customized:

app = MiddleStorm(storm_app, db, key='custom.mystore')

or decorator style:

@middlestorm.decorator(db, key='custom.mystore')
def storm_app(environ, start_response):
    store = environ['custom.mystore']

or in the Paste configuration:

[filter:middlestorm]
use = middlestorm#middlestorm
db_uri = sqlite:myapp.db
key = myapp.store

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

middlestorm-0.8.1.tar.gz (4.7 kB view details)

Uploaded Source

File details

Details for the file middlestorm-0.8.1.tar.gz.

File metadata

  • Download URL: middlestorm-0.8.1.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for middlestorm-0.8.1.tar.gz
Algorithm Hash digest
SHA256 02b8478cf848168eb3de6a9522176b0575b583476dfce572d00f6b66648be6d7
MD5 f04ca026b89f731bd87f50d8c8a7dde7
BLAKE2b-256 3e78dc8b4840b14b0ebe6eb6b65f54730bf585d99ecace0c60b44f4ca19f5610

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page