반응형
사용자가 입력한 메모를 데이터베이스에 저장하기
- 데이터베이스의 저장 로직은 views.py에서 시작합니다. 다음의 코드를 입력합니다.
- 그리고 print와 return 사이에 다음과 같이 코드를 입력합니다.
new_todo = Todo(content = user_input_str)
new_todo.save()
- 저장을 한 후 python manage.py runserver를 통해 웹 페이지로 이동합니다.
- 메모를 입력한 후 메모하기!를 클릭합니다.
- terminal에 다음의 명령어를 입력합니다.
python manage.py dbshell
- 그리고 SELECT * FROM my_to_do_app_todo;을 입력합니다.
- 정상적으로 저장이 잘 되고 있습니다.
저장된 메모를 웹 페이지에 보이게 하기
- 실질적인 구현을 하는 건 view.py, 하지만 꼭 징검다리 urls.py를 건너가야 한다고 했습니다.
- ToDoList > my_to_do_app > urls.py로 이동합니다. 다음과 같이 코드를 수정합니다.
- ToDoList > my_to_do_app > views.py로 이동합니다. 다음과 같이 코드를 수정합니다.
- ToDoList > my_to_do_app > templates > my_to_do_app > index.html로 이동합니다. 다음과 같이 코드를 수정합니다.
- terminal에 python manage.py runserver를 입력하여 웹 페이지를 확인합니다. 그리고 메모도 입력해보세요.
목록 삭제하기
이번에는 빨간색의 '완료'버튼을 눌렀을 때 해당 Todo를 사라지게 하겠습니다. 각각의 Todo를 구별하는 건 데이터베이스에서 테이블을 만들때 자동으로 부여되는 id(PK라고도 함)를 이용하면 됩니다.
- 우선 index.html에서 사용자가 '완료'버튼을 눌렀을 때 /deleteTodo라는 url로 이동하도록 설정합니다.
- urls.py에서 경로를 잡고 views.py로 가겠습니다.
- urls.py로 가서 다음과 같이 코드를 추가합니다.
- 이젠 views.py로 가서 deleteTodo에 대해 정의하겠습니다. 다음의 코드를 추가합니다.
def deleteTodo(request):
delete_todo_id = request.GET['todoNum']
print('삭제한 todo의 id', delete_todo_id)
todo = Todo.objects.get(id = delete_todo_id)
todo.delete()
return HttpResponseRedirect(reverse('index'))
- 저장을 한 후 웹 페이지를 열고 실행해봅니다.
- 삭제도 잘 됩니다.
모두 긴 여정 정말 수고 많으셨습니다.
오늘도 감사합니다.
'웹 개발 실습 > Django' 카테고리의 다른 글
[Django]_맛집 공유 사이트 만들기 (2) READ, DELETE 그리고 Restaurant에 대한 CRUD (0) | 2023.07.30 |
---|---|
[Django]_맛집 공유 사이트 만들기 (1) 프로젝트 구성 & CREATE (0) | 2023.07.30 |
[Django]_ToDoList 만들기 (4) 입력한 메모 출력하기 (0) | 2023.07.30 |
[Django]_ToDoList 만들기 (3) HTML 템플릿 사용하기 & 테이블 사용하기 (0) | 2023.07.30 |
[Django]_ToDoList 만들기 (2) 프로젝트 개발하기 (0) | 2023.07.29 |