29.

【django】APIの作成

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

前提

・djangoインストール済み。

・本稿ではWindows OSを例にしますが適宜読み替えて下さい。

・本稿では出来るだけAPIに関する部分のみを記述する。他に関しては別記事を参照すること。

・プロジェクト名を「api_project」とする

・適当なアプリを作成しておく。今回は「api」アプリとする。

 

必要ライブラリ

pip install djangorestframework

pip install django-filter

 

設定ファイル

api_project/settings.py

INSTALLED_APPS = (

    'api',

    'rest_framework',

)

 

モデルの作成

api/models.py

from django.db import models


class Report(models.Model):

    id = models.CharField(max_length=200, primary_key=True)

    user_id = models.CharField(max_length=200)

※DB設定はAPI固有のものではないので省きます。

※面倒なのでカラムはidのみとします。

 

シリアライザーの作成

api/models.py

from rest_framework import serializers

from .models import User, Entry


class ReportSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'user_id')

※DB設定はAPI固有のものではないので省きます。

 

URLの設定

api_project/url.py

from django.contrib import admin

from django.urls import include, path

 

urlpatterns = [

    path('admin/', admin.site.urls),

    path('api/', include('api.urls')),

]
 

 

api/url.py

from rest_framework import routers

from .views import TestView

 

router = routers.DefaultRouter()

router.register(r'test', TestView)

上記の記述で「GET /api/test/」にアクセスできるようになる。

 

ビューの作成

api/url.py

import django_filters
from rest_framework import viewsets, filters, routers

from .models import Report
from .serializer import ReportSerializer

class TestView(viewsets.ModelViewSet):
    queryset = Report.objects.all()
    serializer_class = ReportSerializer

router = routers.DefaultRouter()
router.register(r'test', TestView)

 

動作の確認

開発サーバーを起動して「http://127.0.0.1:8000/api/test/」にアクセスする。

以下のようにレスポンスが表示されれば成功。

子ページ
子ページはありません
同階層のページ
  1. 環境構築とプロジェクト/アプリの作成
  2. MVC(MVT)のそれぞれの使い方と説明
  3. データベースへの接続と操作
  4. Django Administration
  5. git管理
  6. エラー一覧
  7. バージョンの確認方法
  8. ログ出力方法
  9. SQLのログ出力方法
  10. ログのローテート設定
  11. settings.pyの定数にアクセスする方法
  12. 本番環境へのインストールとアプリのデプロイ(apache編)
  13. 本番環境へのインストールとアプリのデプロイ(nginx編)
  14. djangoアプリの本番の開始URLを変更する
  15. 静的(static)ファイルの置き場所と読み込み(画像、css、js )
  16. CSRFトークンをAjaxで使用する方法
  17. ajaxの使用例(POST編)
  18. ファイルのアップロードとファイルの名前
  19. クイックスタート/チュートリアル
  20. ログイン機能
  21. テンプレート側のログイン判定
  22. ビュー側のログイン判定
  23. 管理者ユーザーの作成/判定と管理画面
  24. モデルのjson化とレスポンス
  25. runserverでポートを指定する方法
  26. cronによるバッチ実行
  27. テンプレートで利用する共通のcontextを定義する方法
  28. プログラムが本番サーバーで反映されない場合の対処法
  29. APIの作成
  30. cron用コマンド・ファイルの作成

最近コメントのあったページ

最近の質問

コメント一覧

コメントがありません

ログインしなければコメント投稿はできません。