Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

Django REST Frameworkで簡単なAPIを開発する


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20211205071412p:plain

おはようございます。Shotaです。

今回の記事では、Django REST Frameworkで簡単なAPIを構築する方法を徹底解説していきます。

注意 本記事は、DjangoDjango REST Frameworkの前提知識がある方、かつVisual Studio Codeをインストールしている人向けの記事です。 DjangoDjango REST Frameworkに関する前提の知識がないなら理解に苦労する点はご了承ください。



基本設定

まずは適当にファイルを用意して以下のコードを入力してください。

django-admin startproject myproject . // .を忘れないように!
django-admin startapp myapp

そうすると、以下のようなディレクトリ構造になっているはずです。

f:id:ShotaNukumizu_1000:20211206144908p:plain

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にアクセスしてデータベースを作成しましょう。

f:id:ShotaNukumizu_1000:20211206150825p:plain

以下の画面のようにデータベースを完成させたら、モデルの作成は終了です。

f:id:ShotaNukumizu_1000:20211206151134p:plain


Serializerを書く

次はデータを保存するためのSerializerを書いていきます。

フォルダmyappserializers.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の完成です。

f:id:ShotaNukumizu_1000:20211206153336p:plain


まとめ

今回の記事では、Django REST Frameworkで簡単なAPIを開発する方法を解説しました。

今回の記事はこれで終了です。

【参考サイト】

qiita.com

www.django-rest-framework.org