Page not found (404) エラー

書籍を読みながらハンズオンで作業を進めたところ、page not found にしても事象が複雑になってしまい切り分けのためやったことを記録します。

 

確認ポイント1.

プロジェクト側の urls.py のみ編集する(アプリケーション側の urls.py は編集しない)

→ 正しく設定している。

path('accounts/', include('allauth.urls')),

 

確認ポイント2. 

html のパス直接たたいてどのページも page not found だった。

migrationまで先に進めていたので状況不明のまま。

 

確認ポイント3. 

ブラウザ画面上のリンクをクリックすると正常表示とエラーのリンクがあったため個別対応しました。

The current path, accounts/signup/}, didn’t match any of these.

 

余計な } があったため取り除いてエラー解消。

href="{% url 'account_login' %}}"

 

 

Django-allauth テンプレートの場所

 

「pip install django-allauth」django-allauthをインストール後、「allauth/templates/account」にテンプレートがあるということで、そこはどこなのかわからず確認したところ「lib/python3.8/site-packages」以下でした。(「Python Djang 開発入門」という書籍の10章です)

 

f:id:hoshikuzuloneliness:20211103115504p:plain



 

 

Linux コマンド名の元の意味

 

change directory (cd), list (ls), make directory (mkdir) などはコマンドを覚えるときに短縮形の元の名前で理解したものの、コマンド名は有名なのに短縮する前の意味 を忘れていたのが以下2つ。

print working directory (pwd)

client URL (curl)

 

cd ~ (ホームディレクトリに戻る)などしっかり忘れていたので、ubuntuチュートリアルをざっくり読んでみました。

 

 

よくやる初歩的エラー

 

よくやる初歩的エラー

  1.  Typo (タイポ)
  2.  複数形のS抜き
  3.  オープンブランケットで間違う { が < になっている、エラーはUnclosed tag と出力されるケース。 {抜きだとPyCharmがエラー出してくれない。
    Unclosed tag on line 60: 'if'. Looking for one of: elif, else, endif.
  4. パスが通っていない(そもそもフォルダ位置が違う、Base_DIR が正しく設定されていない)
    BASE_DIR = Path(__file__).resolve().parent.parent

    # __file__の持つ値をresolve()で解決して、絶対パスに変換
    # .parent.parent により2つ上のディレクトリが参照されます。

django-allauthインストールエラー

 

動かして学ぶ!Python Django開発入門】Chapter 10 『Djangoに認証機能を追加する』で django-allauth のインストール時にエラー発生した。

 

実行コマンド:

pip install django-allauth

エラー:

Failed to build cryptography

ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

 

Warning:

WARNING: You are using pip version 20.2.3; however, version 21.3.1 is available.

You should consider upgrading via the '/Users/<machinname>/venv_private_diary/bin/python3 -m pip install --upgrade pip' command.

 

pip をアップグレードしてみると 21.3.1 へのアップグレードに成功。

そこから再度 allauth をインストールしてみたところエラーは解消しました。authall インストール成功です。

 

 

Collecting pycparser

  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)

Using legacy 'setup.py install' for django-allauth, since package 'wheel' is not installed.

Installing collected packages: pycparser, urllib3, idna, charset-normalizer, cffi, certifi, requests, pyjwt, oauthlib, defusedxml, cryptography, requests-oauthlib, python3-openid, django-allauth

    Running setup.py install for django-allauth ... done

Successfully installed certifi-2021.10.8 cffi-1.15.0 charset-normalizer-2.0.7 cryptography-35.0.0 defusedxml-0.7.1 django-allauth-0.45.0 idna-3.3 oauthlib-3.1.1 pycparser-2.20 pyjwt-2.3.0 python3-openid-3.2.0 requests-2.26.0 requests-oauthlib-1.3.0 urllib3-1.26.7

 

 

 

 

 

 

プログラミング学習の目的

まずお前誰やねんというのがあるの思うのですが、

結構年いっている中高年のやり直し学習記録です。

 

プログラミング学習をする目的ですが、正直に言うと、過去に何度も挫折してくやしいからです。英語も同じ理由でやり直しています。

 

今年の7月に Menta でお二人のメンターに相談したのですが、

そのうちのお一人から下記のアドバイスをいただきました。

 

【メンター相談時にいただいたアドバイス

・目的として「転職か独立か」は明確にしたほうがよい

Python 書けるのであれば Progate やらなくてよい

Flask に機能を付け足していくと結局Django(相当)になるので最初から Djangoでよい

・まずは本に書いてるとおりに作ってみる

アルゴリズムは継続的に学ぶ

 

 

ということで、現在下記の本を読みながら手を動かしているところです。(この投稿時点で 9章)

動かして学ぶPython Django開発入門

 

また、『Python Django3 超入門』を先に読みました。(概要の把握とメモを取っただけです)

 

というわけで、少し Python を書ける程度の中高年が 独学でプログラミングを学ぶブログということになります。最終的には独立できるとよいなと考えていますが、だめならもうしばらくいまできること(自動化など)でやっていこうと思います。

 

基本的に自分のためにアウトプットしていますので、誤字脱字、読みにくさなどありましたら申し訳ありません。