Skip to main content

Flask blueprint management

Project description

.. code-block::

_
(_)___ __ ___________ ___ __ __
/ / __ \/ / / / ___/ __ \/ _ \/ / / /
/ / /_/ / /_/ / / / / / / __/ /_/ /
__/ /\____/\__,_/_/ /_/ /_/\___/\__, /
/___/ Flask blueprint management /____/

.. image:: https://coveralls.io/repos/github/rbw0/flask-journey/badge.svg?branch=master
:target: https://coveralls.io/github/rbw0/flask-journey?branch=master
.. image:: https://travis-ci.org/rbw0/flask-journey.svg?branch=master
:target: https://travis-ci.org/rbw0/flask-journey
.. image:: https://badge.fury.io/py/flask-journey.svg
:target: https://pypi.python.org/pypi/flask-journey
.. image:: https://img.shields.io/badge/License-MIT-green.svg
:target: https://opensource.org/licenses/MIT


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 <http://flask-journey.readthedocs.org/>`_

Full examples
-------------
Working examples can be found `here <https://github.com/rbw0/flask-journey/tree/master/examples>`_

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

Quick taste
-----------

Simple example of ``Journey`` and ``BlueprintBundle``

.. code-block:: python

# 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)


.. code-block:: python

# 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 <http://www.jetbrains.com>`_ for creating pycharm and for providing me with free licenses

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-journey-0.1.4.tar.gz (6.0 kB view details)

Uploaded Source

File details

Details for the file flask-journey-0.1.4.tar.gz.

File metadata

File hashes

Hashes for flask-journey-0.1.4.tar.gz
Algorithm Hash digest
SHA256 b8bb6429207631d5a1700c147920c05d1fe1bd6902d0f7e9766cc1bbee2348c5
MD5 cf2fe4709bd1829eb31aa5a9f950497e
BLAKE2b-256 4c320a5c56d6819e48a1c69bcc588eea389de80f7ed44421ddcff59d3affa439

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