環境 基本 実践 モデル アップロード デプロイ

Django アプリを PyCharm で開発する|Heroku と Django でブログを作ろう!シリーズ第2回

最終更新日 2023.02.18

前回はコンソールから Django アプリを作成し、アプリのディレクトリを確認しました。今回は Python の統合開発環境である PyCharm を使って、このアプリを早速開発していきます。

PyCharm からアプリを起動

PyCharm をはじめて起動すると次のような画面が表示されます。

Open をクリックして PycharmProjects にある blog ディレクトリを選び、開いてください。開発画面が出てきます。

インタプリタを選択する

左のパネルから blog のディレクトリをダブルクリックしてください。blog のディレクトリと manage.py のファイルが出てきます。

各ファイルを一通り見てください。時間が経つと上図のように Invalid Python interpreter selected for the project という黄色のバーが出てきます。このエラーは必ず直さなければいけません。

このエラーは PyCharm が blog というアプリの仮想環境を認識していないことが原因です。PyCharm に仮想環境を認識させるには、下図のように上の選択画面から[PyCharm]→[Preferences]と進んでください。

左のパネルから Project: blog を選んでください。

右上に仮想環境を選択するボックスがあります。このシリーズでは django という仮想環境で開発しているので django を選びます。

OK ボタンを押してもとの画面に戻ると、黄色のバーが消えて無事に開発できるようになります。

管理者のアドレスにアクセスする

コンソールからアプリを起動してください。アプリを起動すると

http://127.0.0.1:8000/

で初期画面にアクセスできるようになります。ここで

http://127.0.0.1:8000/admin/

にアクセスしてください。このアドレスは管理者画面で、これから作っていくアプリのデータベースはここで管理します。

といっても、おそらくエラー画面が出るでしょう。黄色と灰色の背景のこの画面は、今後よく見ることになるデバッグ画面です。

この画面が出たら、ソースコードに誤りがあるか、環境に問題があるかのどちらかです。今回はコードを追記していないので、環境に問題があることになります。

問題は「データベースを作成していないこと」です。データベースを作成していないのに、データベースがないと本来表示できない画面(管理者画面)を表示しようとしているために、エラーが起きているのです。

データベースを作成する

コンソール画面に戻ってください。おそらくアプリを起動している状態だと思いますが、起動していたらアプリを終了させてください。

アプリを終了しましたか? コンソールで今いるところは manage.py があるところですか? それを確認したらデータベースを作成しましょう。データベースを作成するにはコンソールで

python manage.py migrate

とします。すると次のメッセージが出てきます。

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK

この感じは覚えておきましょう。

ここでもう一度アプリを起動して先ほどの管理者画面を表示してください。

ログイン画面が出てきました。ログインすると Django の中にあるデータベースを見れるようになりますが、今はまだログインできません。というのもログインするためのユーザーがいないからです。そこでユーザーを作りましょう。

管理者を作る

Linux を触ったことのある人はユーザーを作るという概念がわかると思います。アプリでも管理者というユーザーを作らないと、管理者画面にログインすることはできません。

アプリを起動している人は終了させてください。そして

python manage.py createsuperuser

と入力してください。ユーザー名とパスワードを設定してください。

Username: admin
Email address: admin@example.com
Password: 
Password (again): 
Superuser created successfully.

再びアプリを起動してください。

python manage.py runserver

そして管理者画面にアクセスしてください。

http://127.0.0.1:8000/admin/

おめでとうございます! これでデータベースを扱うための準備が整いました。次回からいよいよ Python のコードを書いていきます。