Skip to main content

A flask-style `route` decorator for django views

Project description

A flask-style route decorator for django views

Simple things should be simple, complex things should be possible (c)Alan Kay

There is some contradiction between decoupling and DRY principles in django urls. Why not use flasky @route decorator to fix this issue?

Install

pip install django-route-decorator

It's compatible with django >= 2.0 only, because it uses new urls.path syntax.

Simple things should be simple

Just decorate your views with an instance of Route:

from route_decorator import Route

route = Route()

@route
def foo_view(request):
    # /foo-view

@route
def bar__view(request):
    # double underscore means a folder
    # /bar/view

And don't forget to add the routes into your urls.py:

from . import views

urlpatterns += views.route.patterns

Now you have your views binded to /foo-view and /bar-view respectively.

You can also get map urlname -> url with route.names and pass them to frontend maybe. In our case it would be:

{
    'foo_view': '/foo-view',
    'bar__view': '/bar/view'
}

Complex things should be possible

You can pass url_prefix and name_prefix to route:

route = Router('/api', 'api:')

And also use path and name in a decorator:

@route('/baz', 'baz-name')
def baz_view(request):
    ...

So it would be bind to /api/baz with name api:baz-name.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

django_route_decorator-0.1.1-py3-none-any.whl (2.7 kB view hashes)

Uploaded Python 3

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