작성
·
208
0
def delteMemo(requset,idx):
db_article = Memo.objects.get(id = idx)
db_article.delete()
return HttpResponseRedirect(reverse('main'))
def updateMemo(request):
idx = request.POST['idx']
memoContent = request.POST['memoContent']
#실질적인 DB에서의 수정처리
db_article = Memo.objects.get(id = idx)
db_article.memo_txt = memoContent
db_article.save()
return HttpResponseRedirect(reverse('main'))
강의 내용을 보면 views.py에는 이와 같은 코드가 작성됩니다. 두 함수 모두 DB에 접근하기 위해 idx 값을 가져와야 하는데 왜 방식이 다른 건지 모르겠습니다. 답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
ko._.sora님, 여러분이 질문하신 views.py에서 idx 값을 가져오는 두 가지 방식의 차이점에 대해 설명드리겠습니다.
def deleteMemo(request, idx):
의 경우, 함수의 인자를 통해 URL로부터 idx 값을 직접 전달받는 것입니다. Django의 URL dispatcher를 통해 URL의 일부를 뷰 함수의 인자로 넘겨주는 패턴을 사용합니다. 이 경우는 주로 GET 방식의 요청이나 URL 경로 자체에 정보가 포함되어 있을 때 사용합니다.
def updateMemo(request):
의 경우에는 request.POST['idx']
를 통해 사용자가 POST 방식으로 form을 통해 전달한 데이터 내에서 ‘idx’ 라는 키에 해당하는 값을 가져오는 것입니다. POST 방식은 HTML form에서 데이터를 서버로 제출할 때 주로 사용됩니다.
즉, 첫 번째 방식은 URL 경로를 통해 idx 값을 받고, 두 번째 방식은 사용자가 입력한 데이터 중에서 idx 값을 받는 차이가 있습니다. 삭제 기능과 수정 기능의 상황에 따라 각각 적절한 방법을 사용하면 되겠습니다.