Is there something similar to 'rake routes' in django? [duplicate] Is there something similar to 'rake routes' in django? [duplicate] python python

Is there something similar to 'rake routes' in django? [duplicate]


An experiment ...

# appended to root urls.pyif __name__ == '__main__':    from django.core.urlresolvers import RegexURLPattern, RegexURLResolver    from django.utils.termcolors import colorize    import os, sys    sys.path.append(os.path.abspath('..'))    os.environ['DJANGO_SETTINGS_MODULE'] = 'ialtr.settings'    def traverse(url_patterns, prefix=''):        for p in url_patterns:            if isinstance(p, RegexURLPattern):                composed = '%s%s' % (prefix, p.regex.pattern)                composed = composed.replace('/^', '/')                print colorize('\t%s' % (composed), fg='green'), '==> ',                try:                    sys.stdout.write(colorize('%s.' % p.callback.__module__,                        fg='yellow'))                    print p.callback.func_name                except:                    print p.callback.__class__.__name__            if isinstance(p, RegexURLResolver):                traverse(p.url_patterns, prefix=p.regex.pattern)    traverse(urlpatterns)

Now, if one runs python urls.py ...

$ python urls.py    ^users/activate/complete/$ ==> django.views.generic.simple.direct_to_template    ^users/activate/(?P<activation_key>\w+)/$ ==> registration.views.activate    ^users/register/$ ==> registration.views.register    ^users/register/complete/$ ==> django.views.generic.simple.direct_to_template    ^users/register/closed/$ ==> django.views.generic.simple.direct_to_template    ^login/$ ==> django.contrib.auth.views.MethodDecoratorAdaptor    ^logout/$ ==> django.contrib.auth.views.logout    ^password/change/$ ==> django.contrib.auth.views.MethodDecoratorAdaptor    ^password/change/done/$ ==> django.contrib.auth.views.password_change_done    ^password/reset/$ ==> django.contrib.auth.views.MethodDecoratorAdaptor    ^password/reset/confirm/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$ ==> django.contrib.auth.views.password_reset_confirm    ^password/reset/complete/$ ==> django.contrib.auth.views.password_reset_complete    ^password/reset/done/$ ==> django.contrib.auth.views.password_reset_done    ^ialt/applications/$ ==> ialt.views.applications    ^static/(?P<path>.*)$ ==> django.views.static.serve    ^$ ==> django.views.generic.simple.direct_to_template    ^about/ ==> django.views.generic.simple.direct_to_template


When I tried miku's answer, I got this error:

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

It looks like the problem comes from using django.contrib.admin.autodiscover() in my urls.py, so I can either comment that out, or load Django properly before dumping the URL's. Of course if I want to see the admin URL's in the mapping, I can't comment them out.

The way I found was to create a custom management command that dumps the urls.

# install this file in mysite/myapp/management/commands/urldump.pyfrom django.core.management.base import BaseCommandfrom kive import urlsclass Command(BaseCommand):    help = "Dumps all URL's."    def handle(self, *args, **options):        self.show_urls(urls.urlpatterns)    def show_urls(self, urllist, depth=0):        for entry in urllist:            print ' '.join(("  " * depth, entry.regex.pattern,                            entry.callback and entry.callback.__module__ or '',                            entry.callback and entry.callback.func_name or ''))            if hasattr(entry, 'url_patterns'):                self.show_urls(entry.url_patterns, depth + 1)