Django : python으로 웹서비스 개발하기(6) - 데이터베이스 데이터 삽입하기

harry jang·2023년 7월 9일
0

Django

목록 보기
6/12
post-thumbnail

데이터 삽입하기

지난 번 포스팅에 이어 API를 만들어 테이블에 데이터를 삽입(insert)을 진행하도록 하겠습니다.

test_app/views.py에 다음 코드를 추가합니다.

...
from rest_framework import status



@api_view(['POST'])
def setTestMember(request):
    reqData = request.data
    serializer = TestMemberSerializer(data=reqData)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

...

@api_view(['POST']) 어노테이션 지정하여 해당 view에 접근했을 때 POST 메소드로 데이터를 전송하는 화면이 뜨도록 합니다.
그리고 데이터를 입력하여 POST버튼을 눌러 데이터가 전달되면 is_valid()함수로 데이터의 유효성을 확인한 뒤 성공하면 save()함수로 DB에 삽입하고, 유효하지 않으면 400 Bad Request라는 상태코드를 넘겨주도록 했습니다. 이번에는 실패시 응답에 200 OK가 아닌 HttpStatusCode를 넘겨주기 위해 status모듈을 import 시켜주었습니다.

그리고 test_app/urls.py에 해당 view가 호출될 url를 추가시켜 줍니다.

...
urlpatterns = [
    path("member", views.setTestMember, name="setMembers"),
...
]
...

이제 서버를 기동시켜 브라우저에서 http://127.0.0.1:8000/test/member/로 접근해봅시다.
정상적으로 작성됐다면 다음과 같은 화면이 뜨게 됩니다.
member 등록 화면
해당 페이지 하단의 입력 항목들을 채워 넣고 POST 버튼을 누릅니다.
Media type : application/json
Content :

{
  "name" : "peter",
  "age" : 17,
  "created_at" : "2023-07-09 23:21:44"
}

요청 성공
성공시
위 그림과 같이 성공응답과 삽입된 데이터 내용이 표시되며, 실제 DB에서 조회시에도 데이터가 삽입된 것을 확인할 수 있습니다.
mysql 워크벤치

요청 실패
실패시
요청 실패시에는 코드에서 작성한 것과 같이 400 Bad Request 상태코드가 전달되고, 어떤 부분에서 실패가 났는지에 대한 내용이 표시됩니다.

profile
software engineer

0개의 댓글