인프런 커뮤니티 질문&답변

고동현님의 프로필 이미지
고동현

작성한 질문수

Django 프레임워크 제대로 배우기 Part.2

글 삭제

idx값을 가져올 때 views.py에서 매개변수 형태로 가져오는 것과 idx = request.POST['idx'] 형태로 가져오는 것의 차이를 모르겠습니다.

작성

·

208

0

views.pydef 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 값을 받는 차이가 있습니다. 삭제 기능과 수정 기능의 상황에 따라 각각 적절한 방법을 사용하면 되겠습니다.

고동현님의 프로필 이미지
고동현

작성한 질문수

질문하기