이번 시간에는 To-do List사이트에서 사용자가 Database에 정보를 추가하거나 삭제할 수 있도록 코드를 작성하고자한다.
1. 사이트에 메모 추가 기능 만들기
<form action="./createTodo"
index.html 파일의 44번째 라인 (+ 추가)
def createTodo(request):
user_input_str = request.POST['todoContent']
return HttpResponse("create ToDo를 하자! ==> " + user_input_str)
views.py 파일에서 createTodo 함수 (+ 추가)
path('createTodo', views.createTodo, name="createTodo")
createTodo 관련 path (+추가)
리스트이므로 추가할 때 쉼표(,) 주의!
$ python manage.py runserver
서버 실행 후 페이지 열기
이제 사용자로부터 입력된 내용이 DB에 저장되고 페이지에 표시될 수 있도록 코드를 변경하자.
from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from .models import *
import 부분 (+추가)
def index(request):
# 로직 처리 구현
todos = Todo.objects.all() #DB에 저장된 내용 모두 불러오기
content = {'todos' : todos}
return render(request, "my_to_do_app/index.html", content)
def createTodo(request):
user_input_str = request.POST['todoContent']
print('todoContent: ' + user_input_str)
# DB에 저장
new_todo = Todo(content = user_input_str)
new_todo.save()
# 메인 페이지로 되돌아가기
return HttpResponseRedirect(reverse('index'))
name='index'
(+ 추가)
value="{{ todo.id }}"
(편집)
<li class="list-group-item">{{ todo.content }}<li>
(편집)
{% for todo in todos %}
(+ 추가)
{% endfor %}
(+ 추가)
$ python manage.py runserver
위 코드로 서버 실행
2. 업데이트 된 Database 확인
우리가 추가한 메모를 Database에서 확인해보자!
$ python manage.py dbshell
Database shell 실행 후
sqlite> SELECT * FROM my_to_do_app_todo;
우리가 추가한 app의 정보를 모두 끌어오면…
추가한 메모를 확인 가능하다!
3. 사이트에 완료 메모 삭제 기능 만들기
이번엔 메모를 삭제하는 기능도 추가해보자
<form action="./deleteTodo"
(편집)
path('deleteTodo/', views.deleteTodo, name="deleteTodo")
deleteTodo관련 path (+ 추가) 여기서도 쉼표 주의!
def deleteTodo(request):
delete_todo_id = request.GET['todoNum']
print("삭제할 Todo의 ID: ", delete_todo_id)
# DB에서 삭제
todo = Todo.objects.get(id = delete_todo_id)
todo.delete()
# 메인 페이지로 되돌아가기
return HttpResponseRedirect(reverse('index'))
views.py에서 deleteTodo 함수 (+ 추가)
$ python manage.py runserver
서버 다시 실행해서 확인
4. 삭제된 Database 확인
Database에서도 잘 삭제됐는지 확인해보자
$ python manage.py dbshell
Database shell 실행 후
sqlite> SELECT * FROM my_to_do_app_todo;
my_to_do_app의 정보를 모두 끌어오면…
없어진 것을 확인 가능하다!
'# Coding > Django' 카테고리의 다른 글
Django의 MTV 패턴 (MVC 패턴과 비교) (0) | 2023.08.21 |
---|---|
Django로 엑셀파일 계산 페이지 만들기 (계산 기능 구현) (0) | 2023.08.12 |
Django로 엑셀파일 계산 페이지 만들기 (로그인 기능 구현) (0) | 2023.08.12 |
Django로 Gmail 보내기 (0) | 2023.07.29 |
Django To-do List 사이트 생성 (1) (0) | 2023.07.26 |