본문 바로가기

매일 TIL

[내일배움캠프 10-5일] DRF, POSTMAN, article CRUD, comment CRUD

DRF(Django Rest Framework) 시작

우선 djangorestframework 를 설치한 뒤,

freeze > requirements.txt 까지 진행.

이후 settings.py에 rest_framework를 추가.

이러면 drf 준비 끝!

 

그러면 이제 경로랑 뷰 생성해보자.

path('json-drf/', views.json_drf, name='json_drf'),
def json_drf(request):
    pass

articles/urls.py와 views.py

우선 임시로 해놓고 진행.

from rest_framework import serializers
from .models import Article


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

articles/serializers.py

우선 articles앱 안에 serializers.py 생성

우리는 이제 앱 내부마다 serializers.py 파일을 생성하고 사용.

어디서 많이 보던 구조 -> 모델 폼과 동일하다고 생각하면 된다.

from rest_framework.decorators import api_view
from rest_framework.response import Response
from .serializers import ArticleSerializer
@api_view(["GET"])
def json_drf(request):
    articles = Article.objects.all()
    serializer = ArticleSerializer(articles, many=True)
    return Response(serializer.data)

articles/views.py

이제 뷰를 다시 구현해보자

drf에서 함수형으로 뷰를 작성할 때는 반드시 api_view 데코레이터가 필요.

articles가 단일객체라면 many=True 필요없음, 지금은 all()이기 때문에 필요한 것.

좀 낯설지만 괜찮다.

runserver 해보면 이런식으로 표시됨.

 

직접 파이썬 프로그램을 만들고 콜해보자. (우리 서버와 또 하나의 파이썬 프로그램과의 req, res)

import requests

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

print(response)

my_program.py

lecture 폴더 바로 안에 my_program.py를 만들어주고 위와 같이 입력.

이 과정에서 pip install requests 했음.

다른 터미널에서 python my_program.py하면 왼쪽에 추가되는 것을 볼 수 있음.

즉 my_program이 우리 서버에게 req를 주고,

우리 서버는 res를 준 것. 200(정상처리).

import requests

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

print(response.json())

response.json() 하면 json 형태의 데이터를 불러옴.


POSTMAN

API 제공하는 서버를 개발한 뒤 해당 API를 Call 할 수 있는 도구가 필요.

그게 바로 POSTMAN.

회원가입하고 다운받으면 된다.

 

사용방법은 영상 참고 1-5


오늘의 회고

블로그에 전부 기록하며 실습하기에는 시간이 부족함.

github에 커밋하면서 하기로 결정

 

내일의 목표는 쉬면서 수업듣기