クラウド上の頼れる存在、PythonAnywhere。

開発者が押さえておくべき「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 のリンクこそが、解決への最短ルートです。

Example:
NameError: name ‘datetime’ is not defined

ログの一番下を見れば、「何行目で」「何が起きているか」が書いてあります。
上記なら「datetimeという言葉が定義されていない(import忘れ)」が一目瞭然です。エラーログを恐れず、読み解く癖をつけることが、安定稼働への第一歩です。

4. Consoles:黒い画面の歩き方

最後に、コンソール(Bash)での重要な2つの操作について触れます。

① cd (Change Directory)

これは「部屋を移動する」コマンドです。
ファイル操作をする際、自分が今どのフォルダにいるかは重要です。

$ cd myproject

(myproject という部屋に入る、という意味です)

② (venv) の役割

コンソールの入力行の先頭に (venv)(myenv) と表示されているでしょうか。
これは「仮想環境(Virtual Environment)」に入っている印です。

仮想環境とは、そのプロジェクト専用の「道具箱」のことです。
もし (venv) が表示されていない状態でライブラリをインストールしても、システムには反映されません。
作業をする前には必ず workon myenv などのコマンドで、正しい道具箱を開く(仮想環境を有効にする)ことが鉄則です。


PythonAnywhereは、これら3つの画面を行き来するだけで、本格的なWebシステムを運用できる素晴らしいサービスです。
黒い画面に怯えることなく、少しずつ「相棒」としての付き合い方を覚えていけば、開発はもっと楽しくなります。