Django REST 프레임워크의 APIView
11251 단어 django
request.data
는 해석된 요청체 데이터를 되돌려받을 수 있음request.query_params
는 검색 문자열의 데이터와django의request를 얻을 수 있습니다.GET는 똑같아요. (data) , (data=data) 。
json , json
restful API 설계
라우팅:
path("books/",views.BooksView.as_view()),
re_path("books/(?P\d+)/",views.BookView.as_view()),
class BooksView(APIView):
def get(self,request):
query_param = request.query_params
item = request.GET # query_param
print(item)
print(query_param)
queryset=BookInfo.objects.all()
serializer = BookInfoSerializer(queryset,many=True) #
return Response(serializer.data)
def post(self,request):
data = request.data #
item1 = request.query_params
print(item1)
serializer = BookInfoSerializer(data=data) #
if serializer.is_valid() is False:
print(serializer.errors) #
data = serializer.validated_data #
print(data)
BookInfo.objects.create(**data) #
return Response(serializer.data)
class BookView(APIView):
def get(self,request,pk):
try:
data = BookInfo.objects.get(pk=pk)
except BookInfo.DoesNotExist:
return Response(status=404)
serializer = BookInfoSerializer(data)
return Response(serializer.data)
def put(self,request,pk):
try:
book = BookInfo.objects.get(pk=pk)
except BookInfo.DoesNotExist:
return Response("this book is not exist",status=404)
data = request.data #
serializer = BookInfoSerializer(data=data) #
serializer.is_valid(raise_exception=True)
data=serializer.validated_data
book.btitle = data["btitle"]
bpub_date = datetime.strptime(str(data.get("bpub_date")), "%Y-%m-%d").date()
book.bpub_date = bpub_date
book.save()
return Response(data,status=200)
def delete(self,request,pk):
try:
book = BookInfo.objects.get(pk=pk)
except BookInfo.DoesNotExist:
return Response("this book is not exist",status=404)
book.delete()
return Response("The book has been deleted",status=200)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.