Django REST Framework

Django REST Framework を使ってAPIを作ります。Djangoについては 別記事 を参照してください。テスト環境は Apple Silicon Mac です。次のサイトに倣ってテストしました。ただし、多少アレンジしています。

[Python] Djangoチュートリアル - WebAPIサーバの簡単構築方法 - Qiita
この記事についてPythonのWebアプリケーションフレームワーク「Django」についてのチュートリアル記事です。今回は「Django REST framework」を使ったWebAPIと、それ…

テスト環境とプロジェクトの作成

まず virtualenv で専用環境を作って、必要なライブラリをインストールします。Djangoと同じ手順ですがインストールするものが少し違います。

続いてプロジェクトとアプリを作ります。ここも Django の手順と同じです。”project” という名前でプロジェクトを作成します。

出来たディレクトリに降りると manage.py というファイルがあります。”api” という名前でアプリを作ります。api の下に templates/api/index.html というテンプレートファイルを作ります。参考にしたブログ記事では project 直下に templates/index.html を作っていますが、最終的には他のアプリと統合するつもりなのでこのようにします。index.html の中身は後で作りますので空っぽでかまいません。そうすると次のようなファイル構成になります。tree コマンドは “brew install tree” で予めインストールしてあります。

project/settings.py

project/settings.py を編集していきます。

INSTALL_APPS に3行追加します。インストールのときは django_filter でしたが、ここでは django_filters と s が付きます。

TEMPLATES のファイルパスを書く。

タイムゾーンを指定します。

ファイルの最後に次の内容を追記します。

api/models.py

api/models.py を次のようにします。

データベースの初期化

データベースを初期化します。

管理画面

api/admin.py を次のようにします。

管理者を作成します。

動かしてみます。

ブラウザで http://localhost:8000/admin/ をアクセスすると管理画面が表示されます。createsuperuser で設定した ID と Password でログインします。(ここでは ID: admin、Password: oit12345)ログインできることを確認したら、とりあえずそのままにしておきます。

api/views.py

api/views.py を次のようにします。

project/urls.py

project/urls.py を次のようにします。

ここまで来るとログ機能が使えます。runserver で動かした状態で http://localhost:8000/api/logs/ にアクセスしてみてください。

テンプレート

api/templates/api/index.html を次のようにします。

テスト

runserver を状態で http://localhost:8000/ にアクセスすれば動いているはずです。ただし、データが何も入っていないのでグラフの形式だけが表示されます。

ではAPIを使ってデータを送り込んでみましょう。POSTメソッドを使います。次に例示したコマンドで user:password は登録したユーザー名とパスワードに変更してください。JSON記述の中のダブルクォートをエスケープしなければならないことに注意してください。実際に送信した時刻が記録されてグラフなどにも反映しますので数分の感覚をあけて送信するとわかりやすいでしょう。

念の為、もう幾つか値を変化させてデータを送信します。実際に送信した時刻が記録されてグラフなどにも反映しますので数分の感覚をあけて送信するとわかりやすいでしょう。

ここで http://localhost:8000/api/logs/ を見てください。データが受信されていることがわかります。

グラフ表示も確認しておきましょう。http://localhost:8000/ です。