今回はurls.pyの書きかたとpath&nameの使いかたについてやっていきましょう。
urls.pyの書きかた
・Project(プロジェクト)urls.pyの書きかた
プロジェクトで使う場合はpath('好きなURL', include(アプリフォルダ名.urls))
でOK。
・App(アプリ)urls.pyの書きかた
アプリで使う場合はpath('好きなURL', views.関数名, name='分かりやすい名前')
で。またはpath('好きなURL', views.クラス名.as_view(), name='分かりやすい名前')
使う前にfrom . import viewsをインポートしておくこと。
- プロジェクト...アプリを読み込むため
- アプリ...views.pyのdef(関数)かclass(クラス)とつなげるため
・templates内のHTMLで表示したい場合
{% url 'nameの部分' %}でURLが取得される。
urls.pyのnameが重要な理由と使いかた
・nameは重要
URLが変わっても自動的に変更されたURLを取得してくれるから。URLを変更してもHTMLを編集する必要がなくなる。マジ便利。
- たとえばnameが次のような場合
path('home/', views.home, name='top-page')
- URLをhome/からtop-page/に変更しても...
path('top-page/', views.home, name='top-page')
- テンプレート側でURLを自動的に取得。HTMLを修正する必要がない
<a href="{% url 'top-page' %}">Return TopPage</a>
・nameの3つの使いかた
- redirect...views.pyで使う
- reverse...views.pyで使う
- aタグ...HTMLファイルで使う
・aタグのリンクで使いたいとき
"{% url 'リンクしたいname' %}"をURLの代わりにシングルクォーテーションの中にいれればOK。
まとめ: Djangoのurls.pyを理解してアプリ作成をラクに
- プロジェクトは
path('好きなURL', include(アプリフォルダ名.urls))
- アプリで使う場合は
path('好きなURL', views.関数名, name='分かりやすい名前')
- または
path('好きなURL', views.クラス名.as_view(), name='分かりやすい名前')
- nameは重要。マジ使える
urls.pyの書きかたはこんな感じでOK。
実はurls.py、ルーティングっていうURLを決める大事な機能。間違えるとWebアプリが表示さないから気を付けて。
・DjangoのMTVを知っていますか?
DjagnoではMTVっていう考えかたがすごい重要。【基礎】Django/MTVモデルを知って効率的にWebアプリを作ろうで解説してるのでどうぞ。
・もっとDjangoのことを知りたいなら
- 【入門】Django/views.pyの役割と書きかた
- 【入門】Django/models.pyの書きかた使いかた
- 【Django】forms.pyで値を取得→保存するアプリ【チュートリアル】
- 【入門】Django/tests.pyの書きかたとテスト実行のやりかた【重要】