Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

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?


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

def foo_view(request):
    # /foo-view

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

And don't forget to add the routes into your

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.

Files for django-route-decorator, version 0.1.1
Filename, size File type Python version Upload date Hashes
Filename, size django_route_decorator-0.1.1-py3-none-any.whl (2.7 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page