기술블로그-Django편

🧠 Django에서 name=name 의미 완전 정리하기

Chansman 2025. 5. 15. 21:46

🧠 Django에서 name=name 의미 완전 정리하기

Django에서 아래와 같은 코드를 자주 보셨을 거예요:

person = Person.objects.create(name=name, age=age)

처음 보면 헷갈릴 수 있는 부분이 바로 이 name=name 구조인데요, 이 글에서는 좌변과 우변의 차이, 그리고 그 의미를 쉽고 명확하게 정리해드릴게요!


✅ name=name은 무슨 뜻인가요?

name = request.POST.get("name")
person = Person.objects.create(name=name)
  • 왼쪽 name → 모델(Person)의 필드 이름입니다. 즉, 데이터베이스 컬럼
  • 오른쪽 name → 위에서 정의한 변수입니다 (사용자 입력값 등)

🧠 쉽게 말하면: “모델의 name 필드에, 내가 받아온 name 값을 넣는다” 라는 뜻이에요.


🎯 실제 사용 흐름 예시

def create_view(request):
    if request.method == "POST":
        name = request.POST.get("name")  # 👉 사용자 입력값을 변수에 저장
        age = request.POST.get("age")

        # 🔥 Person 모델에 객체 생성 (자동 저장)
        person = Person.objects.create(name=name, age=age)
  • 사용자가 HTML 폼에 입력한 name, age를 가져옴
  • create()를 통해 바로 DB에 저장
  • 각각의 필드에 변수 값을 전달하는 구조

🧾 필드명과 변수명이 다를 수도 있나요?

네, 다르게 할 수도 있어요:

user_input = request.POST.get("name")
Person.objects.create(name=user_input)
  • 이 경우: name=user_input
  • 왼쪽은 모델 필드, 오른쪽은 내가 만든 변수

🎯 이름이 같을 필요는 없지만, 같으면 더 직관적이고 편해요.


✅ 정리표

항목 의미 예시

name (왼쪽) 모델의 필드명 Person 클래스의 컬럼
name (오른쪽) 변수에 저장된 값 request.POST.get("name") 결과

🔚 마무리 요약

  • name=name 구조는 모델 필드에 내가 준비한 값을 넣는 것
  • 이름이 같아 보이지만, 왼쪽은 필드, 오른쪽은 변수예요
  • 다르게 써도 되지만, 같게 쓰면 코드가 더 읽기 쉬워요 👀

이제 name=name의 의미가 명확해지셨죠? 🎯
다음에는 .save() 방식과 get_or_create() 차이도 정리해볼게요!