開発者が押さえておくべき「3つの神器」と、エラーとの付き合い方
Webシステムを自作する際、多くの人が躓くのが「サーバーへの公開(デプロイ)」です。
AWSやVPSは自由度が高い反面、セキュリティ設定やOSの管理など、開発以外の知識が膨大に求められます。
私が「nsra-keiri」の運用基盤として選んだのは、PythonAnywhereでした。
その理由は、余計なインフラ管理を削ぎ落とし、「コードを書くこと」に集中させてくれるからです。
今回は、このPythonAnywhereを使いこなすために必須となる3つの機能(Files, Web, Consoles)と、Django開発における勘所について解説します。
本記事の構成
- 1. 管理画面の基本:Files, Web, Consoles の役割
- 2. Filesの中身:Djangoを構成する5つの重要ファイル
- 3. Webタブ:エラーログは「答え」を知っている
- 4. Consoles:黒い画面(ターミナル)の歩き方
1. 管理画面の基本:Files, Web, Consoles
PythonAnywhereのダッシュボードは非常にシンプルです。開発者が主に見るのは、以下の3つのタブだけです。
- Files(ファイル)
- Windowsのエクスプローラーのような場所です。サーバー上にアップロードされたプログラムの修正や、設定ファイルの編集をここから直接行えます。
- Web(ウェブ)
- サーバーの「司令塔」です。アプリの再起動(Reload)や、エラーログの確認を行います。コードを書き換えた後は、必ずここで再起動ボタンを押す必要があります。
- Consoles(コンソール)
- いわゆる「黒い画面」です。コマンドを入力してデータベースを操作したり、ライブラリをインストールしたりする「作業場」です。
2. Filesの中身:Djangoを構成する重要ファイル
「Files」タブを開くと、プロジェクトの中身が見えます。
Djangoフレームワークにおいては、以下のファイルがそれぞれの「職務」を全うすることでシステムが動いています。
| ファイル名 | 役割(たとえ話) |
|---|---|
| models.py |
「設計図・金庫」 どのようなデータを保存するか(売上、顧客、日付など)を定義します。データベースの構造そのものです。 |
| views.py |
「店員・処理係」 ユーザーからの「保存したい」「見たい」というリクエストを受け取り、計算したりデータベースに問い合わせたりする、処理の中心です。 |
| urls.py |
「受付・案内係」 ブラウザのURLを見て、「経費登録ならあちらの係(View)へどうぞ」と適切な処理へ案内します。 |
| settings.py |
「ルールブック」 パスワード、言語設定、使用するアプリの登録など、システム全体の基本設定を管理します。 |
| .html |
「ショーウインドウ」 最終的にユーザーの目に触れる画面です。views.py から受け取ったデータを、見やすく表示します。 |
3. Webタブ:エラーログは「答え」を知っている
開発中、画面に「Something went wrong」といきなり表示されることがあります。
この時、慌てずに「Web」タブを開いてください。そこにある Error Log のリンクこそが、解決への最短ルートです。
NameError: name ‘datetime’ is not defined
ログの一番下を見れば、「何行目で」「何が起きているか」が書いてあります。
上記なら「datetimeという言葉が定義されていない(import忘れ)」が一目瞭然です。エラーログを恐れず、読み解く癖をつけることが、安定稼働への第一歩です。
4. Consoles:黒い画面の歩き方
最後に、コンソール(Bash)での重要な2つの操作について触れます。
① cd (Change Directory)
これは「部屋を移動する」コマンドです。
ファイル操作をする際、自分が今どのフォルダにいるかは重要です。
(myproject という部屋に入る、という意味です)
② (venv) の役割
コンソールの入力行の先頭に (venv) や (myenv) と表示されているでしょうか。
これは「仮想環境(Virtual Environment)」に入っている印です。
仮想環境とは、そのプロジェクト専用の「道具箱」のことです。
もし (venv) が表示されていない状態でライブラリをインストールしても、システムには反映されません。
作業をする前には必ず workon myenv などのコマンドで、正しい道具箱を開く(仮想環境を有効にする)ことが鉄則です。
PythonAnywhereは、これら3つの画面を行き来するだけで、本格的なWebシステムを運用できる素晴らしいサービスです。
黒い画面に怯えることなく、少しずつ「相棒」としての付き合い方を覚えていけば、開発はもっと楽しくなります。