헷갈릴 수 있어요! 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 코드가 많이 필요합니다. 예를 들어:
- 모델(데이터 저장)에서 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을 잘 이해하는 것이 중요.
결국, 어떤 로직을 처리하느냐에 따라 사용할 코드(파이썬 또는 장고)가 달라지므로, 먼저 무엇을 위해 어떤 것을 작성할 것인지를 고민하는 것이 중요하다는 것을 깨달았습니다.
'Django' 카테고리의 다른 글
| Django ORM과 클래스 상속 원리 (0) | 2025.02.01 |
|---|---|
| Django의 아키텍쳐 설계 및 원칙 (0) | 2025.01.20 |
| Djagno - 프로젝트 내 url / app 내 url의 관계 및 역할 (0) | 2025.01.20 |
| Django 개발 WORKFLOW (1) | 2025.01.20 |