Zakku-Spot.com

気になる情報のリサーチブログ - Reserch blog of information you care about -

0 0
Read Time:1 Minute, 3 Second

 前回は、電子書籍「速習Django3」に沿いつつ、しかし別の方法(Anacondaによりパッケージ管理)で、環境作成(Python動作環境、必要なライブラリのインストール)、仮想環境作成、新規プロジェクト作成、初期規定のアプリ表示、機能追加したアプリをviews.pyから直接出力表示するところまで実施してみました。(仮想環境名は「Python_Django_sokusyu3_01」、新規プロジェクト名は「Python_Django_sokusyu3_01_PJ」、新規アプリケーション名は「main」でした)

 前回作業で、自分なりに、印象に残った点、苦労した点、気づいた点を以下に記録しました。
 以下は、その作業記録(備忘録)です。

1.前回(viewsから直接出力表示)での作業の振り返り

 前回作業で、自分なりに、印象に残った点、苦労した点、気づいた点を以下に記録しました。

(1)settings.pyのINSTALLED_APPSへの登録情報が意味不明だった!

 前回は、プロジェクト(Python_Django_Skusyu3_01_PJ)に、アプリケーション(main)を作成し、プロジェクトのsettings.pyのINSTALLED_APPSに、アプリケーション登録として、

 ’main.apps.MainConfig’,     という文言を

(電子書籍「速習Django3速習シリーズ」に書いてあるままに)追加しました。(以下の追加1)

 しかし、「なぜ、この文言になるのか?」と疑問がありましたが…すぐに解決しました。

 Djangoでは、アプリケーション新規作成直後に、(アプリケーション(main)配下の)apps.pyに、アプリケーション情報が登録されていたのです。(下図)

 (上図の)MainConfigクラス、これが、さっきのsetting.pyのINSTALLED_APPSに追記した

 ’main.apps.MainConfig’,    の、右側部分の、MainConfig部分だったんですよね。

 …で、残った、左側部分の、main.apps ですが、これは、右側の、appsは、アプリケーションですよ、という意味で、mainは、アプリケーション名となり、これは納得すれば済む話でした。

(2)Webサーバ起動時、URL情報の矛盾エラーが消せない!でも何が間違いなのかわからない!!

 Webサーバを起動(python manage.py runserver)しても、あれが無いだ、これが無いだ、見つからないだ、存在しませんだ、と際限なくエラーが表示されてしまい、参りました。

 いや、理屈は(なんとなく)分かってたんですが、目が、泳いでしまって、urls.py(プロジェクトとアプリケーションの2つあるし)見てから、views.py見に行って、よくわかなくなって、settings.pyとかapps.pyとか見に行って、…と(眠かったのもありますが)エラーが消えない…。

 そこで、「あ、自分も、Djangoになろう、この人と同じ順番で、同じことを考えよう」ということになり、以下の点を整理しました。

(a) Djangoは、Webサーバ起動時に、決まった順番で、pyファイルを見に行っている!

 これについては(別記事「[基礎知識]DjangoでWebサーバー起動後に、各Pyファイルを(Django)が読んでいく順番について」)に記載してありますが、要は、この順番で、各pyファイルを見ていかないと、エラーメッセージの意味が分からない、ということでした。

(b) urls.pyは2つある!プロジェクト配下とアプリケーション配下で、見方が違う!

 プロジェクト配下のurls.pyでは、’admin/’ となっていたら、’http://localhost:8000/admin’ を意味し、アプリケーション(main)配下のurls.pyでは、’http://localhost:8000/main/admin/’ を意味するんですよね。

 気づいた後「あー、自分は絶対パスも相対パスもわかっていないのか」位にがっくりきました。

 まる一日悩んだ後、分かってみたら、なんだこんなことかとなりましたが…(;^ω^)

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

コメントを残す