Djangoのurls.pyを理解してpath&nameを上手く使えるようにしよう

今回は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を編集する必要がなくなる。マジ便利。

  1. たとえばnameが次のような場合
    path('home/', views.home, name='top-page')
  2. URLをhome/からtop-page/に変更しても...
    path('top-page/', views.home, name='top-page')
  3. テンプレート側で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のことを知りたいなら

本で学習Pythonを本で学びたいならこの3冊を読めばとりあえずOK

あなた向け初心者へ、リーダブルコードを読めば誰でも"きれいなコード"が書けます