この記事では、DjangoRESTframeworkのインストール、初期設定と最低限の動作確認の方法を紹介します。
◆動作検証環境
・python:3.7.5
・Django:3.1.2
・DjangoRESTframework: 3.12.1
macのローカル環境にDjangoの開発環境を設定する方法を紹介します。◆動作検証環境・ローカル環境:mac Catalina・python:3.7.5・Django:3.1.2python3のインストー[…]
DjangoRESTframeworkのインストール
プロジェクトの仮想環境を有効化して、pipコマンドでDjangoRESTframeworkをインストールします。
1 2 3 | (venv)$ pip3 install djangorestframework |
settings.pyを編集します
1 2 3 4 5 6 | INSTALLED_APPS = [ ... 'rest_framework', #追加 ] |
DjangoRESTframeworkの初期設定
APIの動作用のアプリケーションを作成します。
今回はアプリ名をapiとしています。
1 2 3 | (venv)$ python3 manage.py startapp api |
settings.pyを編集します
1 2 3 4 5 6 7 | INSTALLED_APPS = [ ... 'rest_framework', # 追加 'api.apps.ApiConfig', # 追加 ] |
project/urls.pyを編集します。
project/urls.py
1 2 3 4 5 6 7 8 9 | from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api', include('api.urls')), ] |
apiアプリケーションにurls.pyを作成し、内容を編集します。
api/urls.py
1 2 3 4 5 6 7 8 | from django.urls import path from .views import WeatherAPIView urlpatterns = [ path('', WeatherAPIView.as_view()), ] |
from .views import WeatherAPIView のところでエラーになりますのでWeatherAPIViewを作成します。
api/views.py
1 2 3 4 5 6 7 8 9 10 11 | from rest_framework import generics from .models import Weather from .serializers import WeatherSerializer class WeatherAPIView(generics.ListAPIView): queryset = Weather.objects.all() serializer_class = WeatherSerializer |
エラーに対応するために、WeatherSerializer を作成します。
apiアプリケーションにserializers.pyを作成し、内容を編集します。
api/serializers.py
1 2 3 4 5 6 7 8 9 10 | from rest_framework import serializers from models import Weather class WeatherSerializer(serializers.ModelSerializer): class Meta: model = Weather fields = ('date', 'place', 'weather', 'temp') |
次にmodelを作成します。
api/models.py
1 2 3 4 5 6 7 8 9 10 11 12 13 | from django.db import models class Weather(models.Model): date = models.DateTimeField(verbose_name='日時', auto_now_add=False) place = models.CharField(verbose_name='場所', max_length=20) weather = models.CharField(verbose_name='天気', max_length=20) temp = models.IntegerField(verbose_name='温度') class Meta: verbose_name_plural = 'Weather' |
新しくModelを作成したので、makemigrations , migrate を行います。
admin画面からModelを編集できるようにadmin.pyを編集します。
api/admin.py
1 2 3 4 5 6 | from django.contrib import admin from .models import Weather admin.site.register(Weather) |
API接続の準備ができたので、実際にAPIを叩いて動作を確認してみます。
DjangoRESTframeworkの動作確認
adminの編集画面から、テスト表示用のデータを入力します。
入力が終わったらhttp://127.0.0.1:8000/api/ にアクセスします。
API接続で値が確認できました。
このように、 Django Rest Frameworkでは、対象のURL(エンドポイント)にアクセスすると、ブラウザ画面で結果を確認する事が可能です。
Viewの設定によって、GET,POSTなどアクセスの種類を変更して、アクセスを試す事も可能です。
そのため、アクセス元(iOS,androidのアプリやREACTなどのシングルページ)の開発を行わなくても、API動作の確認が行えます。
以上、DjangoRESTframeworkのインストール、初期設定と最低限の動作確認の方法を紹介しました。
参考ソース:https://www.django-rest-framework.org/