카테고리 없음

[Django] Rest Framework

성창민1214 2024. 5. 2. 21:45
작성자 성창민
일 시 2024. 5. 2  (목) 18:00 ~ 21:00
장 소 복지관 b128-1호
참가자 명단 임혜진, 이재영, 성창민, 김명원, 장원준
 사 진

 

이제 REST Framework 를 익히고 본격적으로 백엔드 부분을 학습해보겠습니다.

유튜브 실용주의 프로그래머님의 REST Framework 강의로 학습했습니다.

https://youtu.be/1qiQkKshMUs?si=iTRmh3-kCWPUSmNA

 

REST Framework 개발환경 세팅

먼저 Djangorestframework 를 설치하겠습니다.

 

그리고 setting.py 파일의 Installed_apps 에 'rest_framework'를 추가해줍니다.

rest framework를 사용하겠다고 명시해주는 것입니다.

url패턴에도 등록해줍니다.

 

 

 

Django 개발 패턴

이제부턴 MVT 모델에서 백엔드에 집중할 것이기 때문에 MV를 주로 사용하게 됩니다. 

T. 즉 템플릿은 프론트엔드쪽에서 집중하게 됩니다.

 

1. Model

Model은 장고에서 데이터 베이스 관리의 역할을 합니다.

보통 데이터베이스를 관리할 때 쿼리문을 사용하게 되는데, ORM을 사용하여 쿼리문을 사용하지 않고 간단하게 데이터베이스를 관리할 수 있게 됩니다.

 

2.View

View는 우리가 생각하는 로직입니다.

유저가 서버에 요청을 보내고, 보낸 요청에 따라 서버에서는 작업을 합니다.

유저가 로그인 한 게 맞는지, 요청 자체가 유효한지, DB의 어떤 데이터를 가져오는 등

그런 작업을 하고 서버에서 유저에게 응답을 하는 로직. 이것들을 담는 것이 view 입니다. 

 

3.라우팅

라우팅이란 어떤 주소로 들어갔을 때 어떤 기능을 실행할지에 대한 연결고리를 만들어 주는 것입니다.

유저가 어떤 요청을 했을 때 처음에 메인 app에서 처리하고 그 이후에 원하는 곳으로 연결해줍니다.

Acoountapp, Profileapp 등 다양한 app이 있는데, Account app으로 연결한다고 예를 들어보면

127.0.0.1:8000/accounts/계정

이런식으로 연결되겠죠.

urls.py 에서 이것을 설정할 수 있습니다.

accountapp이라는 app을 새로 만들어주고, urls파일에서 경로를 설정해주었습니다.

 

처음에 main app에서 처리한다고 했는데 그건 settings.py 에서 설정할 수 있습니다.

settings.py 를 열어보면 ROOT_URLCONF 라는 부분이 있는데, 여기서 url을 관리하는 파일을 정할 수 있습니다.

 

+)

앱을 만들고, 사용할 앱들을 settings.py 의 INSTALLED_APPS에 적어주면 됩니다.

처음에 app을 만들면 urls.py 파일은 없으므로 만들어주도록 합시다.

 

 

VIEW 만들기

view를 만드는 데 있어서 기존 장고에서 사용하던 방식과, DRF방식에 차이가 있다고 합니다.

먼저 기존 장고 방식으로 View를 만들어 보겠습니다.

 

1.기존 장고 방식

View파일에서 hello_world라는 함수를 만들었습니다.

request를 받으면 HttpResponse라는 객체를 리턴하는 함수입니다.

이 로직을 만들었다고 해서 웹사이트에 들어가도 나오지 않습니다. 어떤 주소로 들어갔을 때 나오는지도 정해줘야겠지요.

이전에 만들었던 accountapp의 urls.py파일에 경로를 추가해봅시다.

원래 path 경로에서는 url 명과 include함수를 통해 파일을 연결했는데, 이젠 로직을 바로 연결하면 됩니다. 방금 만든 함수를 바로 연결했습니다.

서버를 돌려보면 잘 나옵니다.

 

이걸 Function_based_view라고 하고,

DRF에서는 Class_based_view를 사용합니다.

이제 Class_based_view를 사용해봅시다.

 

2. DRF 방식

Django 방식과는 다른 점이 있습니다.

우선 리턴을 response로 합니다. response는 이전과 달리 그냥 값을 넣는게 아니라 키 밸류가 있는 딕셔너리를 사용합니다.

REST에서는 JSON이라는 데이터 형식으로 값을 주고받기 때문에 이렇게 딕셔너리 쌍으로 받는거라고 하네요.

그리고 함수 위에 @api_view라는 데코레이터를 적어줘야 작동하게 됩니다.

이제 확인해보면

이런식으로 나오게 됩니다.

우리가 직접 사이트를 만들지 않아도 관리할 수 있는 페이지가 나오는데, 이것도 REST Framework에서 제공해주는 것입니다. 브라우징이 가능한 api, 비주얼적으로 도움을 주는거죠.

 

지금까지 Django를 사용해보면서 이걸 어떻게 백엔드에 사용한다는 거지? 라는 막연한 느낌을 받았었는데 이번에 REST Framework에 대해 학습하면서 웹 개발 구조에 대해 명확하게 알게 되었고, 제가 프로젝트에서 어떤 작업을 진행해야 하는지에 대해 알 수 있었습니다.