[Django]장고로 MySQL에 데이터 삭제(delete)하기

업데이트:

장고로 MySQL에 데이터 삭제(delete)하기

참고 링크

DB

백엔드

프론트엔드

1. 실습 준비

본 예제는 맥OS 환경에서 실행했습니다. 실습 준비는 이전 포스팅을 참고해주세요.

이번 실습에서는 DELETE 방식을 이용해 장고에서 MySQL로 기존에 존재하는 데이터를 삭제해 해보겠습니다.

2. test01/views.py 수정

먼저 test01/views.py 파일에 다음 코드를 추가해줍니다.

@api_view(['DELETE'])
def delMember(request, pk):
    data = Test01.objects.get(id=pk)
    data.delete()
    return Response(status=status.HTTP_204_NO_CONTENT)

삭제 코드는 위와 같이 간단합니다.

위 사진은 해당 코드가 추가된 모습입닏.

3. test01/urls.py 수정

이번에는 url을 추가해보겠습니다.

path('delMember/<str:pk>', views.delMember, name="delMember"),

위 코드를 추가하며 다음 그림고 같이 됩니다.

4. 서버 가동

이제 테스트르 위해 서버를 가동해보겠습니다. 먼저 migrate를 해줍니다.

$ python manage.py makemigrations

No changes detected

$ python manage.py migrate       
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions, test01
Running migrations:
  No migrations to apply.

그리고 다음과 같이 장고 서버를 올려줍니다.

$ python manage.py runserver     

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
June 05, 2022 - 04:24:17
Django version 4.0.2, using settings 'dbcontest.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

5. 삭제 요청 보내보기

웹 브라우저를 실행하고 다음 주소로 이동합니다.

http://127.0.0.1:8000/test/delMember/3

그러면 다음과 같은 화면이 나옵니다.

위 화면에서 우측 상단에 있는 DELETE버튼을 누르면 다음고 같이 삭제 할거냐는 알람이 뜨는데 삭제해줍니다.

그러면 다음 화면과 같이 잘 삭제 된것을 볼 수 있습니다.

데이터베이스로 가서 확인해도 잘 삭제된 것을 볼 수 있습니다.