Django Rest Framework3 - Django 프로젝트 실행
23년 이전 글/Django

Django Rest Framework3 - Django 프로젝트 실행

이전글

 

Django Rest Framework2 파이썬 API Client 만들기

VSCODE Github 연동하기 들어가기에 앞서, 해당 프로젝트를 깃헙과 함께 관리하고 싶다면.. 리포지토리 초기화도 사용 가능하지만 초보자는 아래 github 게시를 추천합니다 저장소로 사용할 이름, priv

okdone.tistory.com

 

Django 서버 띄우기

 

manage.py가 있는 디렉터리로 이동 후, 다음의 스크립트를 실행합니다

manage.py 는 backend 폴더 아래에 위치 합니다

#python3 manage.py runserver [portnumber]
python3 manage.py runserver 8000

 

브라우저로 http://127.0.0.1:8000/ 에 접속했을 때 다음과 같은 GET 방식의 로그가 발생하며,

 

log

장고 로켓이 보인다면 정상적으로 실행이 된 상태입니다

장고 성공 로켓

 

Python Client로 Test 하기

이전 편에서 작성했던 basic.py의 endpoint에, 해당하는 주소를 기입합니다

#basic.py 스크립트

import requests 

# 보통 url로 언급하겠지만, api 활용에서 endpoint라는 용어로도 활용합니다
endpoint = "http://127.0.0.1:8000/"

response = requests.get(endpoint)

print(response.status_code)
print(response.text)

Terminal을 통해서 basic.py를 실행시켜 봅니다(py_client 폴더 내에 있습니다)

python3 basic.py

200 응답과 함께 HTML을 정상적으로 반환하는 것을 볼 수 있습니다

response 결과

 

Django api app 생성

우리가 만들려고 하는 것은 DRF를 통한 api 입니다. manage.py를 통해 api라는 이름의 app을 생성합니다

python3 manage.py startapp api

프로젝트내에 여러개의 app을 생성할 수 있으며, app을 생성했다면, 해당 프로젝트의 settings.py에서 해당 app을 인식하게끔 적어줘야 합니다

cfehome/settings.py에서 INSTALLED_APPS 변수를 찾아서, 리스트에 앱 이름을 적어줍니다

리스트에 api 추가

 

api app에 대한 view 작성

app에서 view들의 집합을 모아둔 파일이 views.py 입니다. api 폴더 내에 views.py로 이동해서 해당 앱이 어떻게 작동해야 할지 작성합니다

저자가 json 응답을 주고 받기 위해 다음의 json response를 사용했습니다만 원하는 response를 사용하면 됩니다. 간단하게 1개의 뷰만 작성합니다

# views.py 내부

from django.http import JsonResponse

# Create your views here.
def api_home(request, *args, **kwargs):
    return JsonResponse({"message":"하이, 이건 장고 api json 응답"})

 

url 연결

Django는 프로젝트에 urls.py에서 각 app의 url로 뿌려주는 과정을 거칩니다. app 생성 시에는 urls.py가 생성되지 않기 때문에 직접 만들어줘야 합니다. api 폴더내에 urls.py 파일을 만들고 다음의 내용을 적습니다

from django.urls import path

#작성 했던 view를 가져오기 위함
from . import views

urlpatterns = [
    path('', views.api_home) #localhost:8000/api/
]

 

다음으로 해당 url을 프로젝트의 urls.py에 포함시켜주는 작업을 합니다. cfehome 폴더내에 urls.py 를 열고 path를 추가합니다

"""cfehome URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/4.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
# include를 추가로 import 합니다
from django.urls import path, include

# include 메서드를 활용해 api/ 이후의 각종 url을 적용합니다
urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('api.urls'))
]

#localhost:8000/api/

 

Json 응답 테스트

아까 실행했던 서버를 종료하지 않았다면 바로 테스트를, 서버를 종료했다면 다시 실행하여 줍니다

manage.py가 있는 곳으로 이동(backend 폴더 내부)해서 명령을 실행합니다

python3 manage.py runserver 8000

 

py_client 폴더에 있는 basic.py를 우리가 설정한 url로 변경합니다, 또한 Json 응답으로 설정했으므로, response 객체 또한 json 형태로 받아봅니다. 

# basic.py
import requests

# api url 설정한 곳으로 변경
endpoint = "http://127.0.0.1:8000/api/"

response = requests.get(endpoint, json={"query":"Hello world"})

print(response.status_code)
print(response.json())

response

 

 

 

Django Rest Framework3 - Django 프로젝트 실행

Django 서버 띄우기 manage.py가 있는 디렉터리로 이동 후, 다음의 스크립트를 실행합니다 manage.py 는 backend 폴더 아래에 위치 합니다 #python3 manage.py runserver [portnumber] python3 manage.py runserve..

okdone.tistory.com

 

반응형