skip to navigation
skip to content

Not Logged In

Flask-Via 2014.05.19.2

Provides a clean, simple URL routing framework for growing Flask Applications.

Latest Version: 2015.1.1

Flask-Via

Inspired by the Django URL configuration system, Flask-Via is designed to add similar functionality to Flask applications which have grown beyond a simple single file application.

Example

from flask import Flask
from flask.ext.via import Via
from flask.ext.via.routers.default import Functional

app = Flask(__name__)

def foo(bar=None):
    return 'Foo View!'

routes = [
    Functional('/foo', foo),
    Functional('/foo/<bar>', foo, endpoint='foo2'),
]

via = Via()
via.init_app(app, route_module='flask_via.examples.basic')

if __name__ == "__main__":
    app.run(debug=True)

Why?

Growing your application can be quite difficult when it’s not always clear where and how your routes are discovered. This can lead to a cluttered application factory method when all your routes are defined at application creation - resulting in code which is difficult to maintain, not to mention messy.

A better solution is to define your routes in a routes.py and automatically load them at application start up. This is what Flask-Via helps to do.

Third party Flask extensions don’t always follow the same conventions for adding routes to an application, so Flask-Via has been designed to be easy for developers to write their own custom routers. For an example of this, take a look at the bundled Flask-Restful Resource router.

If you do write a custom router that is useful to you, it will probably be useful to someone else so please do contribute back :)

Change Log

2014.05.19.2

  • Improved: @joonathan added kwargs passing to the Blueprint Router
  • Improved: init_app and added __init__
  • Added: Deprecation warning to Basic router

2014.05.19.1

  • Hotfix: Fixed issue where routes would be reregistered with an app incorrectly in the event of multiple app creations

2014.05.19

  • Feature: Include now supports endpoint prefixing
  • Feature: Blueprint router can now take a blueprint instance
  • Feature: Added support for VIA_ROUTES_NAME to set a common routes name
  • Deprecated: Basic Router in favour of the Functional router
  • Improved: Pluggable Router API is now cleaner
  • Improved: Test Suite now uses PyTest
  • Improved: ImproperlyConfigured now raised if routes module is not defined in either init_app or in application configuration via VIA_ROUTES_MODULE

2014.05.08

  • Feature: Flask Admin Router
  • Feature: Include url_prefix option

2014.05.06

  • Feature: Flask extension initialisation
  • Feature: Basic and Pluggable Flask Routers
  • Feature: Flask-Restful Router
  • Feature: Ability to include other routes
  • Feature: Ability to register blueprints
 
File Type Py Version Uploaded on Size
Flask-Via-2014.05.19.2.tar.gz (md5) Source 2014-07-16 14KB
  • Downloads (All Versions):
  • 9 downloads in the last day
  • 96 downloads in the last week
  • 711 downloads in the last month