Django REST Frameworkで簡単なAPIを開発する
スポンサードリンク
おはようございます。Shotaです。
今回の記事では、Django REST Frameworkで簡単なAPIを構築する方法を徹底解説していきます。
注意
本記事は、DjangoやDjango REST Frameworkの前提知識がある方、かつVisual Studio Codeをインストールしている人向けの記事です。
DjangoやDjango REST Frameworkに関する前提の知識がないなら理解に苦労する点はご了承ください。
基本設定
まずは適当にファイルを用意して以下のコードを入力してください。
django-admin startproject myproject . // .を忘れないように! django-admin startapp myapp
そうすると、以下のようなディレクトリ構造になっているはずです。
myproject/settings.py
を開き、以下のコードを追加してください。
# myproject/settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', #追加 'rest_framework', 'myapp', ]
後は、以下のコードを入力してください。
python manage.py migrate
最後に、Djangoの管理サイトにアクセスするための管理者(superuser
)を作成します。以下のコマンドを入力してください。
python manage.py createsuperuser
ユーザ名、メールアドレス、パスワードを入力すればsuperuser
の完成です。
Modelを作成する
次に、データベースに必要なモデルを設計していきます。今回作成するモデルは以下の通りです。
- 名前
- 年齢
- メールアドレス
myapp/models.py
を開き、以下のコードを入力しましょう。
# myapp/models.py from django.db import models class PersonModel(models.Model): name = models.CharField(max_length=70) age = models.IntegerField() email = models.EmailField() def __str__(self): return self.name
これを入力した後、管理サイトの処理を行うmyapp/admin.py
にアクセスして以下のコードを入力してください。
# myapp/admin.py from django.contrib import admin from .models import PersonModel admin.site.register(PersonModel)
後は以下のコマンドを入力してデータベースを完成させましょう。
python manage.py makemigrations python manage.py migrate
以下の内容がターミナル(コマンドプロンプト)に出力されたらデータベースの作成は完了です。
Operations to perform: Apply all migrations: admin, auth, contenttypes, myapp, sessions Running migrations: Applying myapp.0001_initial... OK
あとは以下のコマンドを入力して、127.0.0.1:8000/admin
にアクセスしてログインし、データを作成します。
py manage.py runserver
下記のような画面にアクセスできたら、Person models
にアクセスしてデータベースを作成しましょう。
以下の画面のようにデータベースを完成させたら、モデルの作成は終了です。
Serializerを書く
次はデータを保存するためのSerializerを書いていきます。
フォルダmyapp
にserializers.py
を作成してください。
# myapp/serializers.py from rest_framework import serializers from .models import PersonModel class PersonModelSerializer(serializers.ModelSerializer): class Meta: model = PersonModel fields = '__all__'
これでSerializerの設定は完了です。
Viewを書く
次にデータを表示するためのViewを書いていきます。myapp/views.py
を開いて、以下のコードを書いてください。
#myapp/views.py from rest_framework import generics from .models import PersonModel from .serializers import PersonModelSerializer class ListView(generics.ListCreateAPIView): queryset = PersonModel.objects.all().order_by('-id') serializer_class = PersonModelSerializer class DetailView(generics.RetrieveDestroyAPIView): queryset = PersonModel.objects.all() serializer_class = PersonModelSerializer
これでViewは完成です。
ルーティングの設定
最後にルーティングを設定しましょう。myproject/urls.py
にアクセスして、以下のコードを書いてください。
# myproject/urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('myapp.urls')), ]
次に、myapp
フォルダの中にurls.py
をアクセスして以下のコードを書いてください。
#myapp.urls.py from django.urls import path from . import views urlpatterns = [ path('data-list/', views.ListView.as_view()), path('data-list/<int:pk>', views.DetailView.as_view()), ]
プログラムの実行
最後に以下のコマンドを入力して実行します。
python manage.py runserver
以下の画面が表示されたら、APIの完成です。
まとめ
今回の記事では、Django REST Frameworkで簡単なAPIを開発する方法を解説しました。
今回の記事はこれで終了です。
【参考サイト】