
1. 모델 정의
먼저, 데이터베이스 모델을 정의하는 방법을 알아보겠습니다. modles.py 에서 Product라는 모델을 만들어봅니다.
# models.py
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100) # Product Name
price = models.DecimalField(max_digits=10, decimal_places=2) # Product Price
stock = models.IntegerField() # product stock
def __str__(self):
return self.name # Product name
2. 뷰 작성
이제 비즈니스 로직을 포함한 뷰를 작성합니다. 제품 목록을 가져오고, 필터링하는 뷰를 작성할 수 있습니다.
# views.py
from django.shortcuts import render
from .models import Product
# Create your views here.
def product_list(request):
# 쿼리 셋을 사용하여 필터링할 가격을 가져옴
min_price = request.GET.get('min_price', 0)
max_price = request.GET.get('max_price', 10000)
# 가격 범위에 따른 제품 필터링
products = Product.objects.filter(price__gte=min_price, price__lte=max_price)
# 제품 목록을 템플릿에 전달
context = {
'products': products
}
return render(request, 'product__list.html', context)
3. 템플릿 작성
이제 제품 목록을 표시할 템플릿을 작성해줍니다.
<!-- templates/product_list.html -->
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<title>제품 목록</title>
</head>
<body>
<h1>제품 목록</h1>
<ul>
{% for product in products %}
<li>{{ product.name }} - {{ product.price }} 원</li>
{% empty %}
<li>제품이 없습니다.</li>
{% endfor %}
</ul>
</body>
</html>
4. URL 설정
마지막으로, view를 URL에 매핑해줍니다.
from django.urls import path
from django.contrib import admin
from .views import product_list
urlpatterns = [
path('admin/', admin.site.urls),
path('products/', product_list, name='product_list')
]
5. 마이그레이션 확인
모델을 정의한 후, 데이터베이스에 해당 테이블을 생성하기 위해 마이그레이션을 실행합니다.
python manage.py makemigrations myapp
python manage.py migrate
6. Django Admin을 통한 제품 추가
myapp/admin.py 파일을 열고 Product 모델을 등록합니다.
# myapp/admin.py
from django.contrib import admin
# Register your models here.
from .models import Post
from .models import Product
admin.site.register(Post)
admin.site.register(Product)
다음 Admin에 로그인하기위한 슈퍼유저 계정을 만들어줍니다.
python manage.py createsuperuser
다음 서버를 실행하고 http://127.0.0.1:8000/admin으로 접속해서 로그인합니다. 로그인 후, Products 항목을 클릭하여 제품을 추가할 수 있습니다. 필요한 정보를 입력하고 저장합니다.
7.Django Shell을 통한 제품추가
Django Shell을 직접 사용해 제품을 추가할 수 있습니다. 다음 명령어로 Django 쉘을 실행해서 제품 추가 코드를 실행합니다.
python manage.py shell
from myapp.models import Product
# 제품 추가
product = Product(name='예시 제품', price=10000)
product.save()
# 추가 후 종료
exit()
GitHub - Koras02/djago-bloging: https://thinky.tistory.com/category/Back-End/Django
https://thinky.tistory.com/category/Back-End/Django - Koras02/djago-bloging
github.com
LIST
'Back-End > Django' 카테고리의 다른 글
[Django] 2장. Django 모델 정의, 어드민 설정 (0) | 2025.03.25 |
---|---|
[Django] 1장. Django란? (0) | 2025.03.07 |