헷갈릴 수 있어요! Django는 Python 프레임워크이므로, Django 코드와 일반 Python 코드가 함께 사용되는 경우가 많아요. 하지만 각각의 역할을 이해하면 쉽게 구분할 수 있어요.


1. Python 코드 vs Django 코드 차이 이해하기

구분 역할 예제

Python 코드 데이터를 처리, 로직 작성, 기본 기능 제공 print(), for, def
Django 코드 웹 애플리케이션을 만들기 위한 기능 제공 models.Model, views.View, urls

📌 이렇게 이해하면 쉬워요!

  • "기본적인 로직을 처리할 때"Python 코드 사용
    • 예: 리스트 다루기, 반복문, 문자열 처리, 파일 읽기 등.
    • for 문, if 문, def 함수, open() 등
  • "웹 관련 기능을 구현할 때"Django 코드 사용
    • 예: 모델(DB), 뷰(로직 처리), URL 라우팅 등.
    • models.Model, render(), request.GET

2. 언제 Python을 쓰고, 언제 Django를 쓰나요?

예제 1: 게시글 저장 기능 (Python vs Django 비교)

① Python 코드 (일반적인 로직)

title = "Django 공부"
content = "Django ORM을 배우는 중이에요!"

# 리스트를 사용하여 간단한 데이터 저장
posts = []
posts.append({'title': title, 'content': content})

print(posts)  # [{'title': 'Django 공부', 'content': 'Django ORM을 배우는 중이에요!'}]
  • 여기서는 Django를 사용하지 않고 Python의 리스트와 딕셔너리를 활용해 데이터를 관리함.
  • 간단한 로직이나 테스트용으로 사용.

② Django 코드 (실제 웹 애플리케이션)

from myapp.models import BlogPost

# Django ORM을 사용하여 데이터베이스에 저장
post = BlogPost(title="Django 공부", content="Django ORM을 배우는 중이에요!")
post.save()  # DB에 저장됨

# 저장된 데이터 출력
print(BlogPost.objects.all())  # <QuerySet [<BlogPost: Django 공부>]>
  • Django의 models.Model을 사용해 실제 데이터베이스에 저장.
  • 이 방법은 웹 애플리케이션에서 사용해야 함.

예제 2: 사용자 입력 처리 (Python vs Django 비교)

① Python 코드 (콘솔에서 입력받기)

name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
  • Python의 input()을 사용하여 터미널에서 입력받고 출력.

② Django 코드 (웹 요청 처리)

from django.shortcuts import render

def greet_user(request):
    name = request.GET.get('name', 'Guest')
    return render(request, 'greet.html', {'name': name})
  • Django에서는 request.GET을 사용해 웹 페이지에서 입력을 받고 응답.

3. Django에서 Python을 활용하는 경우

Django를 사용할 때도 Python 코드가 많이 필요합니다. 예를 들어:

  1. 모델(데이터 저장)에서 Python 코드 사용

Django의 모델을 정의할 때, def를 이용한 Python 메서드를 추가하여 로직을 구현

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()

    def summary(self):  # Python의 메서드 작성
        return self.content[:100]  # 첫 100자만 반환

   2.뷰(로직 처리)에서 Python 코드 사용

 

Django의 뷰 함수 안에서 Python을 사용하여 데이터 처리.

def calculate_numbers(request):
    num1 = int(request.GET.get('num1', 0))
    num2 = int(request.GET.get('num2', 0))
    result = num1 + num2  # 여기서 Python 연산 활용
    return render(request, 'result.html', {'result': result})

 

3.템플릿(HTML 페이지)에서 Python 로직 활용

Django 템플릿에서도 반복문, 조건문을 사용해 Python의 일부 기능을 적용 가능.

<h1>게시글 목록</h1>
{% for post in posts %}
    <p>{{ post.title }}</p>  <!-- Django 템플릿 코드 (Python 활용) -->
{% endfor %}

4. 정리 (헷갈리지 않게 이해하는 방법)

상황 어떤 코드 사용? 예제

웹이 아닌 일반 작업(계산, 파일 처리) Python 코드 사용 open(), for, print()
데이터베이스 연동 Django 모델 코드 사용 models.Model
웹 페이지에서 데이터 가져오기 Django 뷰 코드 사용 request.GET, render()
웹에서 폼 입력 받기 Django 폼 코드 사용 forms.Form
API 개발 Django REST 프레임워크 사용 serializers.ModelSerializer

 


5.결론: Python과 Django의 차이를 쉽게 기억하기

  • Django는 Python의 웹 프레임워크 → 웹 기능을 담당.
  • Python은 기본적인 로직 처리 → 데이터 연산, 반복문, 조건문 등.
  • Django를 사용하지만, 결국 코어는 Python이므로 Python을 잘 이해하는 것이 중요.

결국, 어떤 로직을 처리하느냐에 따라 사용할 코드(파이썬 또는 장고)가 달라지므로, 먼저 무엇을 위해 어떤 것을 작성할 것인지를 고민하는 것이 중요하다는 것을 깨달았습니다.

+ Recent posts