Djangoでrailsのrake routesみたいな機能

初めてdjango触ったとき、railsでいうrake routesってないのかなと思った記憶があります。

最近はある程度djangoに慣れたせいかあまり思いませんが、あってもいいと思うんですよね。

新しいプロジェクトに参画したときとか、リポジトリが大きくてurls.pyがアプリごとに散らかっていたりすると、パスわかりにくかったりするので。


デフォルトで用意はされてませんが、django-extensionsというライブラリを導入すればその機能は用意されてます。

django-extensions
https://github.com/django-extensions/django-extensions

導入

pip install django-extensions

settings.py

INSTALLED_APPS += ('django_extensions', )

使ってみる

manage.pyにshow_urlsが追加されます。実行するとこんな感じ。

adminを見たくない場合は| grep -v adminとかすればいいですね


他にもいろいろ用意されてます。

$ python manage.py help 

..

[django_extensions]
    clean_pyc
    compile_pyc
    create_app
    create_command
    create_jobs
    describe_form
    dumpscript
    export_emails
    find_template
    generate_secret_key
    graph_models
    mail_debug
    notes
    passwd
    print_settings
    print_user_for_session
    reset_db
    runjob
    runjobs
    runprofileserver
    runscript
    runserver_plus
    set_fake_emails
    set_fake_passwords
    shell_plus
    show_templatetags
    show_urls
    sqlcreate
    sqldiff
    sync_media_s3
    syncdata
    unreferenced_files
    update_permissions
    validate_templates
..