오늘은 Django를 활용하여 데이터베이스와의 연동 방법에 대해 자세히 알아보겠습니다. Django 프레임워크는 웹 애플리케이션 개발을 보다 손쉽고 효율적으로 만들어 줍니다. 특히, 데이터베이스와의 통신을 원활하게 해주는 ORM(Object-Relational Mapping) 기능을 통해, 개발자는 SQL 쿼리를 직접 작성할 필요 없이 파이썬 코드로 데이터베이스 작업을 수행할 수 있습니다. 그럼 구체적인 단계로 데이터베이스와 연동하는 방법을 살펴보겠습니다.

Django 프로젝트 생성하기
먼저, Django 프로젝트를 시작하기 위해서는 Django를 설치해야 합니다. 설치가 완료되면, 다음 명령어를 사용하여 새로운 Django 프로젝트를 생성할 수 있습니다.
django-admin startproject myproject
위 명령어를 실행하면 ‘myproject’라는 폴더가 생성되며, 이 안에 필요한 기본 파일들이 자동으로 생성됩니다. 이후, 생성된 프로젝트 폴더로 이동하여 Django의 기본 서버를 실행해 보겠습니다.
cd myproject
python manage.py runserver
이제 웹 브라우저에서 http://127.0.0.1:8000
를 입력하여 기본 Django 페이지가 잘 나타나는지 확인해 보세요.
데이터베이스 설정하기
Django는 기본적으로 SQLite라는 경량 데이터베이스를 사용합니다. 쉽게 사용할 수 있지만, 실제 배포 환경에서는 PostgreSQL이나 MySQL과 같은 보다 강력한 데이터베이스를 사용하는 것이 바람직합니다. 데이터베이스 설정은 settings.py
파일에서 관리됩니다.
아래의 코드 예시와 같이 데이터베이스 설정을 변경할 수 있습니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
위 설정을 통해 PostgreSQL 데이터베이스와 연결할 수 있습니다. 데이터베이스가 생성된 후, Django의 마이그레이션 기능을 사용하여 데이터베이스 테이블을 생성합니다.
python manage.py makemigrations
python manage.py migrate
모델 정의하기
Django에서 데이터는 모델을 통해 정의합니다. 모델은 데이터베이스 테이블 구조를 정의하며, models.py
파일에서 작성합니다. 예를 들어, 사용자 정보를 저장할 User
모델을 아래와 같이 정의할 수 있습니다.
from django.db import models
class User(models.Model):
username = models.CharField(max_length=100)
email = models.EmailField()
password = models.CharField(max_length=128)
created_at = models.DateTimeField(auto_now_add=True)
위의 코드에서 models.Model
을 상속받아 필요한 필드를 정의하면, Django는 이를 기반으로 데이터베이스의 테이블을 생성합니다.
데이터베이스와 상호작용하기
데이터베이스에 저장된 정보를 읽거나 수정하기 위해서는 Django의 쿼리셋 API를 사용할 수 있습니다. 예를 들어, 모든 사용자 정보를 가져오는 간단한 쿼리는 다음과 같습니다.
users = User.objects.all()
특정 사용자 정보를 수정하고 저장하는 것도 매우 간단합니다.
user = User.objects.get(id=1)
user.email = 'newemail@example.com'
user.save()
또한, 새로운 사용자를 추가하고자 할 때는 다음과 같은 방법으로 수행할 수 있습니다.
new_user = User(username='newuser', email='user@example.com', password='securepassword')
new_user.save()
뷰와 템플릿 사용하기
Django의 뷰는 사용자의 요청을 처리하는 함수로, views.py
파일에 정의됩니다. 예를 들어, 모든 사용자 정보를 보여주는 뷰는 아래와 같이 작성할 수 있습니다.
from django.shortcuts import render
from .models import User
def user_list(request):
users = User.objects.all()
return render(request, 'user_list.html', {'users': users})
그리고 해당 뷰에 연결된 HTML 템플릿 user_list.html
은 다음과 같이 작성할 수 있습니다.
<!DOCTYPE html>
<html>
<head><title>User List</title></head>
<body>
<h1>Registered Users</h1>
<ul>
{% for user in users %}
<li>{{ user.username }} - {{ user.email }}</li>
{% endfor %}
</ul>
</body>
</html>

URL 라우팅 설정하기
마지막으로, 생성한 뷰를 URL에 매핑하기 위해 urls.py
파일에서 설정해야 합니다. URL 패턴을 정의하고 뷰와 연결하는 코드는 아래와 같습니다.
from django.urls import path
from . import views
urlpatterns = [
path('users/', views.user_list, name='user_list'),
]
이렇게 설정한 후, 웹 브라우저에서 /users/
URL을 입력하면 등록된 사용자 목록을 확인할 수 있습니다.
마무리
이번 포스트에서 Django와 데이터베이스를 연동하는 기본적인 방법을 알아보았습니다. Django의 ORM 기능을 이용하면 데이터베이스와의 상호작용이 매우 간편해지며, 이를 통해 개발자는 비즈니스 로직에 더 집중할 수 있습니다. 더 많은 정보를 통해 Django의 다양한 기능을 익혀 보시기 바랍니다.
자주 찾는 질문 Q&A
Django로 데이터베이스를 어떻게 설정하나요?
Django 프로젝트에서는 settings.py
파일을 통해 데이터베이스 설정을 조정할 수 있습니다. 기본적으로 SQLite가 설정되어 있으며, 이를 PostgreSQL이나 MySQL과 같은 다른 데이터베이스로 변경할 수 있습니다.
Django ORM이란 무엇인가요?
ORM(Object-Relational Mapping)은 데이터베이스와 객체 지향 프로그래밍 언어 간의 변환을 담당하는 기능입니다. Django에서 ORM을 사용하면 SQL 쿼리 작성 없이 파이썬 코드로 데이터베이스 작업을 효율적으로 수행할 수 있습니다.
Django에서 모델을 정의하는 방법은?
모델은 Django의 데이터 구조를 정의하는 중요한 요소로, models.py
파일에 클래스 형태로 작성됩니다. 각 클래스는 데이터베이스 테이블의 필드를 나타내며, 이를 통해 데이터베이스와의 연결이 이루어집니다.
0개의 댓글