the dawn of yuriko hisory

アニメやら漫画関係で何か作りたいものと勉強したことのメモ用

DjangoGirlsに挑戦~Django urlsってなに?~

Django urlsってなに?

今回デプロイは飛ばします。
実際に何か作る際に改めて調べる必要がありそう。

DjangoのURLはどのように動いているのか

プロジェクトフォルダ/urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
]

前回の記事で大部分は説明したので飛ばしていきます。

今回はアプリケーションごとにURLの設定をしていきます。
まずはDjangoが起動したときに最初に読み込まれるのは
プロジェクトフォルダのurls.pyに設定されているため
そちらにアプリケーションのurls.pyを読み込ませるように設定する。

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),

    url(r'', include('blog.urls')), //1
]

1
これはURLのパス部分が/ の時にblogアプリケーションのurlsを読み込むように設定している
ローカル環境で接続する場合はhttp://127.0.0.1:8000/にリクエストを送ったときに見てくれる用になる

これでアプリケーション用のURLの設定ができるようになるが、
Djangoのアプリケーションを追加した際にデフォルトでurls.pyは作成してくれていないため、(これはなんでだろう?)
作ってあげる必要がある

project/
├ manage.py
├ app/
│   ├ __init__.py
│   ├ settings.py
│   ├ urls.py
│   └ wsgi.py
└ blog/
     ├ migrations
     ├ _init_.py
     ├ admin.py
     ├ models.py
     ├ tests.py
     ├ views.py
     └ urls.py //ここに新規で追加

blog/urls.py

from django.conf.urls import include, url
from . import views //1

urlpatterns = [
    url(r'^$', views.post_list), //2
]

1.
同フォルダ内のviews.pyを読み込む
なぜ読み込んでいるのかは2で説明

2.
第二引数views.post_listの意味は
このURLにリクエストした時にviews.pyのpost_listを返すように設定している。
DjangoのURLのリクエストの順番として
プロジェクトのurls.py → アプリケーションのurls.py → 表示するようのview(MVCで言うController)に渡して
実際に画面の描写する処理を作成していく


これでとりあえずURLを作成していく流れができたので
次にビュー部分を実装していき、実際に画面に表示させていく。