📘 DRF 


Django REST Framework

 

📕 Django REST Framework (DRF)

  • Django를 이용해서 API를 구축하는 기능을 제공하는 라이브러리이다.
  • Django의 Form, ModelForm과 굉장히 비슷하게 구성 및 작동한다.

 

DRF 설치 및 설정

1. install django rest framework

pip install djangorestframework
pip freeze > requirements.txt

 

2. settings.py

'rest_framework',

 

↓ 일단 사용해 보기

1. articles/urls.py

더보기
path("json-drf/", views.json_drf, name="json_drf"),

 

2. articles/serializers.py 생성

더보기
from rest_framework import serializers
from .models import Article


class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = "__all__"

 

Model form과 비슷한 구조를 띄고 있다.

 

3. articles/views.py

더보기
from rest_framework.decorators import api_view
from .serializers import ArticleSerializer
from rest_framework.response import Response

@api_view(["GET"])
def json_drf(request):
    articles = Article.objects.all()
    serializer = ArticleSerializer(articles, many=True) # 단일 객체면 many가 없어도 됨. 지금은 __all__이라서
    return Response(serializer.data)

 

 

4. python manage.py runserver

 

API는 소프트웨어끼리 소통하는 방법

⇒ 직접 파이썬 프로그램을 만들어서 콜 해보자

 

my_program.py

더보기
import requests

url = "http://127.0.0.1:8000/api/v1/articles/json-drf/"
response = requests.get(url)

print(response)

 

API가 200으로 뜬 걸 보니까 제대로 처리됐다는 뜻!!


🤔 우리에게 필요한 도구는

  • API를 제공하는 서버를 개발하고 나면 해당 API를 Call 할 수 있는 ‘무언가’가 필요하다.
    • ⇒ API를 호출하고 결과도 보고 해야 하니까

그걸 도와주는 게 ↓

📮 Postman 

🔗 https://www.postman.com/
  • 개발자가 API를 디자인, 테스트, 문서화, 공유를 할 수 있도록 도와주는 소프트웨어다.
  • API 테스트, 환경 관리, 협업 등을 위한 강력한 기능을 제공하여 보다 효율적으로 API를 개발하고 테스트할 수 있게 도와준다.

 

1. My workspace에 들어간다.

2. 새로운 collection을 생성한다.

3. request를 생성하고 정의한다.

4. 보낼 주소를 입력하고 Send(보내기)를 누른다.

더보기

 

 

query params에 key랑 value를 기입하면, 자동으로 url 뒤에 key와 value가 기입된다.

 

 

Headers도 볼 수 있다.

  • 이렇게 하나하나의 API를 작성하고 테스트하면서 개발을 진행한다.
  • Workspace를 팀원끼리 공유하여 협업이 가능하다.
    • ⇒ 최대 3명까지 무료로 이용가능하고, 그 이상은 유료

'공부 > DRF 공부' 카테고리의 다른 글

[DRF] DRF CBV(Class Based View) 사용하기  (0) 2025.01.30
[DRF] DRF Single Model CRUD  (0) 2025.01.30
[DRF] Response와 Serializer  (0) 2025.01.28
[DRF] RESTful API와 JSON  (0) 2025.01.23
[DRF] HTTP와 URL 구조  (0) 2025.01.23

+ Recent posts