Skip to content

Instantly share code, notes, and snippets.

@RickyCook
Last active January 3, 2016 07:29
Show Gist options
  • Save RickyCook/8429386 to your computer and use it in GitHub Desktop.
Save RickyCook/8429386 to your computer and use it in GitHub Desktop.
List a Django app's urlpatterns in a table
#
# General setup
# Import your app and set APP_URLS to your urlpatterns
#
import iss.urls
APP_URLS = iss.urls.urlpatterns
from url_levels import url_levels
out = url_levels(APP_URLS)
#
# IPython Notebook with pandas
#
import pandas
from IPython.display import HTML
HTML(pandas.DataFrame(out).to_html())
#
# Terminal
# See https://github.com/RickyCook/pptable for pptable.py
#
from pptable import pptable
pptable(out)
"""
List a Django app's urlpatterns.
This is better, in some ways, than ./manage.py show_urls, as it shows
the full regexes that match.
"""
def url_levels(pat, prefix=None):
"""
Compile a list of all Django url patterns in a formatted array
"""
if prefix is None:
prefix = []
try:
all = []
loop_list = pat
if hasattr(pat, 'url_patterns'):
loop_list = pat.url_patterns
for url in loop_list:
all += url_levels(url, prefix + [url.regex.pattern])
return all
except TypeError:
return [prefix]
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment