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
Built Distribution
Hashes for django_route_decorator-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c2e8a67ae5bc78699ce0f48b05278062d559aeabe918520a408bb1a5eaebdea |
|
MD5 | 5c83d33925aa6071ccca657941ed54f9 |
|
BLAKE2b-256 | 55fadcc120ac8fa3c5501b4fa7e3d2accecc5e501118c355e698e424785c689a |