Django REST框架的笔记

下面只需要一种选项,将以下内容翻译成中国。

我試圖讓GPT-3.5於Django REST框架建立API,但需要先稍微學習一下,因為我無法評估GPT所生成的程式碼。因此,我決定先瀏覽Django REST框架的教學文件等。

只需要在中国人中以原生方式复述一下:

只需要参考官方教程,即可了解详细的步骤,所以我只需要记录个人感兴趣的事项。

学习内容

在使用Django创建项目或应用之后,
要使用Django REST framework,需要编辑或新建以下文件。

アプリ名/models.py
下記のように適当なモデルを追加する。

models.py
from django.db import models

class ArticleTag(models.Model):
“””タグ一覧”””
tag_name = models.CharField(max_length=50)
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
is_deleted = models.BooleanField(default=False)

class Meta:
“””デフォルトのソート条件”””
ordering = [‘created_date’]

アプリ名/serializers.py
モデルとJSONの変換できるように下記を記載する(シリアル化)。
本当はカラムごとに型を指定するコードの方がよさそうだが、
こちらの方が簡単に記載できる。

serializers.py
from rest_framework import serializers
from .models import ArticleTag

class ArticleTagSerializer(serializers.ModelSerializer):
class Meta:
model = ArticleTag
# これで全てのカラムを指定できる
fields = ‘__all__’

アプリ名/views.py
下記はのように書けば概ね問題なし。DELETEなどを追加したいなら別途DELETE関数を追加する。
ListCreateAPIViewなどを使えばGET関数などを省略できるが、
簡略化されすぎてよくわからないため今回は採用しない。

views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import ArticleTag
from .serializers import ArticleTagSerializer

class ArticleTagAPIView(APIView):
def get(self, request):
tags = ArticleTag.objects.all()
serializer = ArticleTagSerializer(tags, many=True)
return Response(serializer.data)

def post(self, request):
serializer = ArticleTagSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

プロジェクト名/setting.py
下記のようにINSTALLED_APPSにrest_frameworkとアプリ名を追加する。

setting.py
INSTALLED_APPS = [

‘rest_framework’,
‘アプリ名’,
]

またページごとに返されるオブジェクト数を制限するために下記も追加しておく。

setting.py
REST_FRAMEWORK = {
‘DEFAULT_PAGINATION_CLASS’: ‘rest_framework.pagination.PageNumberPagination’,
‘PAGE_SIZE’: 10
}

プロジェクト名/urls.py
下記のように対応したパスを定義する。

urls.py
from django.urls import path
from ..アプリ名.views import ArticleTagListView

urlpatterns = [
path(‘tags/’, ArticleTagListView.as_view(), name=’tag-list’),
]

请用中文将以下句子重新表达,仅需提供一种选择:

想法 / 感受

因为有许多不同的编写方法,创建一个API并不容易理解。
在实际的开发环境中,管理看起来很困难。
如果在本文中有错误,请指正。

bannerAds