ryotankの備考録日記

趣味の電子工作についての備考録などなど

電子工作作業報告書管理アプリその52

view.pyの中身を書き換えてマイグレーションファイルの生成をして
検証すると

urls.pyがおかしいとエラーが出たので、

改めてurls.pyのおさらいをする

viewがクラスベースビューで書いているので

#"views.pyの中身
 class IndexView(TemplateView):   #クラスベースビュー

最近のDjangoではクラスベースビューでの記述が多い

クラスベースビューの記述例

#"urls.pyの中身
 urlpatterns = [
	path('index/', views.IndexView.as_view(), name = 'index_view'
]

アプリのurls.pyを参照する
プロジェクトのurls.pyに下記のようなコードが書いてある時は

#「urls.pyの中身
urlpatterns = [
	path('index/', include('index.urls')),
]

「index」というアプリ(ディレクトリ)のurls.pyを参照しなさいという指示に
なり
indexディレクトリ内のurls.pyは下記のような記述になる

#"index/urls.pyの中身
 urlpatterns = [
	path('', views.IndexView, name = 'index_view'),
]

という風になるが少し分かりずらい


例えば、「https://ドメイン名/index/testpage/」にアクセスがあったとする

するとまずプロジェクトのurls.pyの中からマッチするパスを探す

「index/」がマッチするので、「indexアプリのurls.py」を
参照しようと動く
下記がその役割をする

include('index.urls')

参照する際にURLの「index/」以降の部分「testpage/」を
検索ワードとして持っていく。
次にindexアプリのurls.pyの中から「testpage/」とマッチするものを探す。

例えば下記のようなurls.pyだった場合

#index/urls.pyの中身
urlpatterns = [
	path(' ', views.IndexView, name ='index_view'),
	path('testpage/ ', views.TestPageView, name='test_page'),
]

2つ目のpathがヒットするので「TestPageView」ビューが開くわけ。

次回は今回調べたことをurls.pyに組み込む