[Django] Views.py 설정하기

그냥·2022년 6월 8일
0

django

목록 보기
3/20

View란

Django에서 View란 Client에서 보낸 Request에 대해서 Response을 보내주는 역할을 한다. 세부적으로는 View는 Django 필요한 데이터를 모델에서 가져와서 적절히 가공하여 웹 페이지 결과를 만들도록 한다.




View 작성하기

  1. Model 작성하기
    view 작성하기 전에 model.py를 만들어서 makemigration과 migrate가 먼저 선행되어야 한다.

  2. View 작성하기
    app 폴더 내에 views.py에 코드를 작성한다. 해당 예제는 client에서 request(post)을 했을 때 이에 대해서 response를 주는 것이다.

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)



urls 작성하기

├── manage.py
├── app_name
│   ├── models.py
│   ├── urls.py
│   └── views.py
└── project_name
	└── urls.py : main urls.py

  1. 프로젝트 폴더 내 urls.py
    이 urls.py는 main urls.py로 요청 url 분석을 가장 먼저하는 파일이다. 해당 파일에서 보통 앱 단위로 분기를 해준다.
from django.urls import path, include

urlpatterns = [
	path('받을이름', include('앱이름.urls'))
]

  1. 앱 폴더 내 urls.py
    이 urls.py는 위 urls.py를 통해서 들어온 요청에 맞게 views.py의 객체, 함수 등으로 연결해준다.

예제에 맞춰 생각해보자. view.py에서 만든 class ProductView의 post 메소드를 사용하겠다는 요청이 오는 것을 urls.py를 통해서 연결해 줄 수 있다.

from django.urls import path

from products.views import ProductsView

urlpatterns = [
    path('', ProductsView.as_view()),
]



View 정리

  1. model.py를 통해서 DB 설계
  2. views.py 작성하기
  3. 2개의 urls.py에 View 내 메서드 연결

0개의 댓글

관련 채용 정보