Skip to main content

SQL Alchemy session scoped on Flask requests.

Project description

Flask-SQLAlchemySession2024

Run tests

This is a fork of the excellent Flask-SQLAlchemySession package by Dimitris Theodorou, which has unfortunately gone unpatched for a few years.

Provides an SQLAlchemy scoped session that creates unique sessions per Flask request, following the guidelines documented at Using Custom Created Scopes.

TODO

  • coverage
  • docs

Usage

Initialize a flask_scoped_session as you would a scoped_session, with the addition of a Flask app. Then use the resulting session to query models:

from flask import Flask, abort, jsonify
from flask_sqlalchemy_session import flask_scoped_session

app = Flask(__name__)
session = flask_scoped_session(session_factory, app)

@app.route("/users/<int:user_id>")
def user(user_id):
    user = session.query(User).get(user_id)
    if user is None:
        abort(404)
    return flask.jsonify(**user.to_dict())

The current_session is also provided as a convenient accessor to the session of the current request, in the same spirit of flask.request and flask.current_app.

from flask_sqlalchemy_session import current_session

@app.route("/users/<int:user_id>")
def user(user_id):
    user = current_session.query(User).get(user_id)
    if user is None:
        abort(404)
    return flask.jsonify(**user.to_dict())

Tests

You can run the tests by invoking PYTHONPATH=. py.test tests/ in the repository root.

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

Flask-SQLAlchemy-Session2024-3.0.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file Flask-SQLAlchemy-Session2024-3.0.0.tar.gz.

File metadata

File hashes

Hashes for Flask-SQLAlchemy-Session2024-3.0.0.tar.gz
Algorithm Hash digest
SHA256 8166cb167abc9369f19d7b55ba7c375e4cc5229f4a777aa9a3d01fdf1bd98626
MD5 c7cbd1f75f6a976f974597ee70f521c5
BLAKE2b-256 8b790936e16a4025c451b5648bf446e52697d6dd748e8f07527c31e53a095839

See more details on using hashes here.

File details

Details for the file Flask_SQLAlchemy_Session2024-3.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for Flask_SQLAlchemy_Session2024-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60e33535f7ec6418011cb9f99278d12880927b9834ed43d3812ba66bd8065072
MD5 f3e850378913886ff0506467da2a9962
BLAKE2b-256 f41b2ab0a83a7580bcb31b1e4859722dca81257e96d8df73bc35f0517fc1f9b9

See more details on using hashes here.

Supported by

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