Web Application: 第9回 Djangoでページのルーティング設定をする

前回、myproject管理フォルダ内のurls.pyを編集しましたが、今回は

car_motorbikeアプリケーションフォルダ直下に、同じくurls.pyを新規作成して、下記スクリプトを書きます。

Contents

car_motorbike/urls.py 新規作成

アプリケーションネームapp_nameとして 明示的にcarbikeと定義してあります。ここはなくてもいいかもしれませんし、car_motorbikeにするべきかもしれませんが、ひとまずこれでやってみます。

1.当該スクリプトで使用するモジュールであるviews.py は 当該urls.pyと同層になるので

from . import views

という不思議なインポート記述になります。

viewsモジュールはまだ作成していませんので実行すると当然エラーになりますが、あとで作成しますので心配いりません。

2.そして、画像を入力したときにvvc16_predct.pyを走らせて予測結果を返す画面である predict画面を定義します。

urlpatternsリストにリスト要素として

path(‘predict/’, views.predict, name=’predict’)

を追加します。これで urlのツリー構造として /carbike/predict が定義されたことになります。

views.predictメソドはこれから作成しなければなりませんので、現時点ではエラーが出ます。

3.なお、このcar_motorbike/urls.pyスクリプトは myproject/urls.py から呼び出されるものなので、これから myproject/urls.py の方を改良していきます。

ルーティングというやつです。

myproject/urls.py 編集

ではここから car_motorbike/urls.py へルートをつなげていきます。

1.include関数を新たにインポートして 、先程作成した car_mortorbike/urls.pyを参照するようリストurlpatternsにリスト要素としてpath(‘carbike/’, include(‘car_motorbike.urls’))を追加します。

2.これで、ブラウザ上のurl指定に/carbikeが追加されたとき、car_motorbike.urlsスクリプトを見に行くことになります。

car_motorbike/views.py の編集

先程、car_motorbike/urls.py 内で views.predictメソドを記述しましたが、それの実体をここで定義します。とりあえずルーティングが正しく行われて表示されるか確認したいので、実行内容としてはテキストを出力するだけの最低限にしてテストしてみましょう。

動作チェック

では python manage.py runserver して ブラウザで動作チェックをしましょう。

1.http://127.0.0.1:8000/ を入力すると

>[21/Sep/2019 15:53:08] “GET / HTTP/1.1” 404 2032

トップページは作っていませんから、404エラーで問題ありません。

2.http://127.0.0.1:8000/carbike を入力すると

>[21/Sep/2019 15:53:17] “GET /carbike/ HTTP/1.1” 200 11

200と出ていますのでちゃんと認識しています。

3.http://127.0.0.1:8000/carbike/predict

>[21/Sep/2019 15:53:30] “GET /carbike/predict/ HTTP/1.1” 200 21

と 200が帰ってくるのでこちらも正常に動作しています。

次回

Web Application: 第10回 HTMLでかっこよくする