Django View 생성하기

김우식·2022년 6월 17일
0

views.py 작성 1 - Post Method 작성하기

#products/views.py

import json

from django.http import JsonResponse
from django.views import View

from products.models import Menu, Category, Product

class ProductsView(View):
    def post(self, request):
        data     = json.loads(request.body)
        menu     = Menu.objects.create(name=data['menu'])
        category = Category.objects.create(
            name = data['category'],
            menu = menu
        )
        Product.objects.create(
            name     = data['product'], 
            category = category
        )
    return JsonResponse({'messasge':'created'}, status=201)

자원(resource)을 생성할 때, Http Method 중에 Post Method를 사용합니다. 또한 로그인 회원가입 등 중요한 정보도 POST method로 데이터를 request의 body에 담아서 client에서 server로 요청합니다.

views.py 작성 2 - Get Method 작성하기

#products/views.py

import json

from django.http import JsonResponse
from django.views import View

from products.models import Menu, Category, Product

class ProductsView(View):
    def get(self, request):
        products = Product.objects.all()
        results  = []

       for product in products:
           results.append(
               {
                   "menu" : product.category.menu.name,
                   "category" : product.category.name,
                   "product_name" : product.name
               }
           )
       
        return JsonResponse({'resutls':results}, status=200)

자원(resource)를 읽어 올 때, http method 중에 GET method를 사용합니다. url만 사용합니다.

url 맵핑해주기

from django.urls import path, include

urlpatterns = [
    path('products', include('products.urls'))
]

새로운 View 를 작성 한 후에는, 클라이언트의 요청을 받아 적절한 view 를 맵핑해주는 urls.py 를 작성해주어야 합니다. (만약 동일한 view class 를 사용하고 http method 만 다르다면 동일한 url을 사용하면 됩니다.)

profile
반가워요!

0개의 댓글