Django URL resolver utilities
This package aims to make it easier to introspect and possibly manipulate the URL resolver(s) in Django projects.
We use urr to auto-generate smoke tests for all URLs in the project, but you might come up with other uses. Who knows!
Install the package using pip install
or similar.
To use the management command(s), also add django_urr
to your project's INSTALLED_APPS
.
You can use the urr_list
management command to generate
a machine-readable (but human-greppable) list of URLs in your project.
By default, urr_list
outputs JSON Lines (jsonl
), with each
route on a line of its own; this is greppable with standard tools.
If you'd prefer, you can also direct urr_list
to output a single JSON
array with --format=json
.
Each route is an object (dict) has the following keys:
groups
– the named capture groups (route arguments). For unnamed groups, these are named_0
,_1
, etc. by Django.name
– the name of the route, if anynamespace
– the namespace of the route, if anypath
– the path of the route, as a Python percent format stringpattern
– the regex to match the path
The django_urr.extract_urls()
function
traverses the tree of URL patterns and returns an iterator of
django_urr.extract.URLEntry
objects in original mounting order.