[Django] 3장. Django 뷰 작성 - 비즈니스 로직 및 데이터 처리

img1.daumcdn.png

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