flask-journey

Flask blueprint management


Keywords
blueprint, deserialization, flask, marshmallow, registration, routing, serialization, validation
License
MIT
Install
pip install flask-journey==0.1.4

Documentation

       _
      (_)___  __  ___________  ___  __  __
     / / __ \/ / / / ___/ __ \/ _ \/ / / /
    / / /_/ / /_/ / /  / / / /  __/ /_/ /
 __/ /\____/\__,_/_/  /_/ /_/\___/\__, /
/___/ Flask blueprint management /____/
https://coveralls.io/repos/github/rbw0/flask-journey/badge.svg?branch=master https://travis-ci.org/rbw0/flask-journey.svg?branch=master

Description

Provides a clean and simple way of importing and managing blueprints. Additionally, the extension also enables consistent methods of (de)serialization and validation in blueprint enabled views.

It uses the standard Flask blueprint system, is modular and doesn't depend on anything special.

This along with an auth component is pretty much all you need for a solid REST API foundation.

Highlights

  • Dead simple blueprint and route management that works with vanilla blueprints in Flask
  • Drop-in replacement of flask.Blueprint.route with support for Marshmallow

Installing

$ pip install flask-journey

Documentation

The documentation can be found here

Full examples

Working examples can be found here

Will add more shortly (simpler ones and marshmallow-sqlalchemy)

Quick taste

Simple example of Journey and BlueprintBundle

# file: bundles.py

from flask_journey import BlueprintBundle
from .users import bp as users
from .groups import bp as groups

v1 = BlueprintBundle(path='/api/v1')
v1.attach_bp(users, description='Users API')
v1.attach_bp(groups)
# file: __init__.py

from flask import Flask
from flask_journey import Journey

from .bundles import v1

app = Flask(__name__)
journey = Journey()
journey.attach_bundle(v1)
journey.init_app(app)

print(journey.routes_simple)

Compatibility

  • Python 2 and 3
  • Flask > 0.7

Author

Created by Robert Wikman <rbw@vault13.org> in 2018

JetBrains

Thank you Jetbrains for creating pycharm and for providing me with free licenses