C.R.U.D2 과제 코드 리뷰(DogView)

5322 단어 djangopythondjango
class DogView(View):  #강아지 정보를 등록하고 가져오는 클래스 생성
    def post(self, request):  #프론트에서 요청하는 데이터가 request 인자에 담김
        data = json.loads(request.body)  #프론트에서 넘어오는 데이터는 json형태로 넘어오기 때문에 파이썬으로 가공한 후 받아야 하는데, 그 역할을 loads함수가 해줌
        owner = Owner.objects.get(name=data['owner'])  #강아지 데이터에는 Owner로 연결되는 ForeignKey가 있기 때문에 get함수를 통해 주인 정보를 변수에 저장시켜야함
        Dog.objects.create(  #create함수를 통해 프론트에서 요청한 데이터를 생성
        name  = data['name'],  
        age   = data['age'],
        owner = owner
    )
    return JsonResponse({"Message": "Success"}, status=200)  #마지막으로 응답을 리턴해줌 
    def get(self, request):  #프론트에게 정보를 넘겨주어야 하는 get메소드
        result = []  #파이썬에서 json형태로 변환하여 데이터를 넘겨주어야 하기 때문에 변환이 가능한 형태인 리스트에 데이터를 담아야함
        dogs = Dog.objects.all()  #강아지의 모든 데이터를 쿼리셋 형태로 변수에 저장
        for dog in dogs:  #강아지의 데이터를 for문을 통해 한개씩 꺼냄
            dog_information = {      #꺼낸 데이터를 딕셔너리 형태로 변수에 저장
                'name': dog.name,
                'age'  : dog.age,
                'owner': dog.owner.name
            }
            result.append(dog_information)
         return JsonResponse({'result': result}, status=200)  #JsonResponse를 통해 리스트에 담아놓은 result값을 리턴해줌.
``` 

좋은 웹페이지 즐겨찾기