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개의 댓글

관련 채용 정보