Django REST FRAMEWORK Tutorial 6 -- シリアライザを view に組み込んでブラウザで見れるようにする
7536 단어 django
何をするのか
https://www.django-rest-framework.org/tutorial/1-serialization/#writing-regular-django-views-using-our-serializer
from django.shortcuts import render
# Create your views here.
この状態の何も書いていない views で Snippet 시리아라이자を読み込むようにする
views に REST の ためのライブラリをインポート
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from snippets.models import Snippet
from snippets.serializers import SnippetSerializer
HTTP 응답, JSON 응답
https://www.ipa.go.jp/security/vuln/vuln_contents/csrf.html
CSRF(上記の사이트の説明のように勝手にユーザーを操作する)(을)를
https://djangobrothers.com/blogs/django_csrf/#CSRF%E6%A4%9C%E8%A8%BC%E3%82%92%E7%84%A1%E5%8A%B9%E5%8C%96%E3%81%99%E3%82%8B%E4%BE%8B
(REST は外部から叩かれるものなので) 許可するためのライブラリ
JSON 파서
스니펫 모델
스니펫 시리아라이자
上記をインポートする
snippet_list 에서 GET 와 POST 의 API を作る
@csrf_exempt
def snippet_list(request):
"""
List all code snippets, or create a new snippet.
"""
if request.method == 'GET':
snippets = Snippet.objects.all()
serializer = SnippetSerializer(snippets, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == 'POST':
data = JSONParser().parse(request)
serializer = SnippetSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
csrf_exempt で CSRF の対策を無効化して
GET の 時には単純に Snippet 모델로부터 시리아라이즈시라고 JSON で返す
POST의 시간에 요청으로부터 데이터를 요청하기 JSON에 해
シリアライズして、Eラーが出なければ保存している
projectName/urls.py の 루트 に 스니펫 の url をrinkさせる
from django.urls import path, include
urlpatterns = [
path('', include('snippets.urls')),
]
root に snippets アプリの urls が通るようにする
snippets/urls.py に snippet_list を追加
from django.urls import path
from snippets import views
urlpatterns = [
path('snippets/', views.snippet_list),
]
snippet の views をインポートして
snippets/に views の snippet_list をrinkさせる
ブラウザで root/snippets/ を確認
localhost:8002/snippets/をブラウザで確認する와
JSON ででーたの中身が全て返ってきているのを確認できた.
まとめ
보기 에서 csrf_exempt をつけて
def snippet_list と定義して GET の時に
modelのテーブルの中身をシリアライズして JSON にして返す関数を作り
projectName/urls 에서 snippet の url をsettして
snippets/urls で snippets/に 보기 の snippet_list をsettsuruto
localhost 에서 snippets/にアクセスした時に
JSON 데모 모델의 스니펫 テーブルの中身が全て返ってくるようになる.
Reference
이 문제에 관하여(Django REST FRAMEWORK Tutorial 6 -- シリアライザを view に組み込んでブラウザで見れるようにする), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/django-rest-framework-tutorial-6-siriaraizawo-view-nizu-miip-ndeburauzadejian-reruyounisuru-167p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)