DRF 02 setting
Intro
私たちは「どう」で「何」と答えるかに重点を置きます.
HTMLレスポンス
Djangoの応答方式を使用しています
ただし,HTML自体は構造化(整合性)文書であり,データ抽出には適していない.
次に、データ(情報)伝達に焦点を当てたJSONに応答するサーバを作成します.
JSONを手動で設定して応答する
フィールドを直接整理します.
ディクシャナでない場合は、
フィールドを直接構成するのではなく、
DRFを利用します.
私たちは「どう」で「何」と答えるかに重点を置きます.
HTMLレスポンス
Djangoの応答方式を使用しています
ただし,HTML自体は構造化(整合性)文書であり,データ抽出には適していない.
次に、データ(情報)伝達に焦点を当てたJSONに応答するサーバを作成します.
JSONを手動で設定して応答する
フィールドを直接整理します.
ディクシャナでない場合は、
safe=False
パラメータを追加する必要があります.from django.http.response import JsonResponse
from .Models import Article
def article_list_json_1(request):
articles = Article.objects.all()
articles_json = []
for article in articles:
articles_json.append({
# 각 필드를 주석 처리
'id': article.id,
'title': article.title,
'content': article.content,
'created_at': article.created_at,
'updated_at': article.updated_at,
})
return JsonResponse(articles_json, safe=False)
1 Django core serializers応答フィールドを直接構成するのではなく、
articles
QuerySet情報を用いてシリアル化する.HttpResponse
は、content_type
のキーワードファクタを使用して、任意の値を超えなければtext/html
をデフォルト値として使用する複数のタイプの回答を行うことができる.# articles/views.py
from django.http.response import JsonResponse, HttpResponse
from django.core import serializers
from .models import Article
def article_list_json_2(request):
articles = Article.objects.all()
data = serializers.serialize('json', articles)
# print(type(data)) str
return HttpResponse(data, content_type='application/json')
2 DRF応答DRFを利用します.
$ pip install djangorestframework
# settings.py
INSTALLED_APPS = [
...
'rest_framework',
]
# articles/serializers.py
from rest_framework import serializers
from .models import Article
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('title', 'content', 'created_at', 'updated_at',)
# fields = '__all__'
# articles/views.py
from rest_framework.response import Response
from .serializers import ArticleSerializer
def article_list_json_3(request):
# 직렬화 할 데이터 DB에서 가져오기
articles = Article.objects.all()
# ArticleSerializer를 통해 직렬화하기 (QuerySet이라서 many=True 옵션 필수)
serializer = ArticleSerializer(articles, many=True)
return Response(serializer.data)
Reference
この問題について(DRF 02 setting), 我々は、より多くの情報をここで見つけました https://velog.io/@hsngju/DRF-02-settingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol