본문 바로가기

Coding/[Django]

[Django] 개발자 꿈나무 나롱이 🌱 # 2. Django project 만들기(django-ninja를 api로 사용하는 이유!)

 

 

✿ 선댓글과 공감, 구독은 사랑입니다 히히히헤헤헿 ✿

 

 

 

 

 

이 글에선 강의에서 튜터님이 말씀하시는 django-ninja를 api로 사용하는 이유를

짧게 정리해보려고 한다!

 

 

 

 

 

 

 

 

 

Django-ninja

 

 

 

 

 

 

django ninja 를 선택한 이유는 요즘 FastAPI 가 핫하기 때문이다!!

 

 

 

FastAPI의 경우 -> Tortoise ORM과 Async View 등으로 동시성 환경에서 좀 더 효율적인 성능이 더 잘 나온다.

 

 

 

 

django-ninja는 Async ORM을 구현하지는 못했어도, Async View는 만들어준다.

따라서 Fast API처럼 개발할 수 있도록 도와준다.

 

 

 

 

 

 

 

Async View concurrency

 

 

실제 서버에서는 여러 유저가 동시에 서버에다가 요청을 하기 때문에 concurrency 환경에서 얼마만큼의 성능이 나오는 지가 중요하다.

 

 

 

 

django-ninja 페이지를 확인하면 (https://django-ninja.rest-framework.com/)

django-ninjark 굉장히 빠르다고 자랑한 것을 볼 수 있다!

 

 

 

 

 

 

 

따라서 이번에 강의를 통해 FastAPI같은 django-ninja 프로젝트를 만들어 경험해보려고 한다.

 

강의를 따라 djagno-ninja 튜토리얼을 진행해보자!

 

 

 

 

 

 

먼저 urls.py에 아래의 코드를 16번째 줄부터 덮어씌워준다.

 

from django.contrib import admin
from django.urls import path
from ninja import NinjaAPI

api = NinjaAPI()


@api.get("/add")
def add(request, a: int, b: int):
    return {"result": a + b}


urlpatterns = [
    path("admin/", admin.site.urls),
    path("api/", api.urls),
]

 

 

 

 

 

 

 

 

자세한 코드 설명을 적기 위해 나는 아래와 같이 파이참에 주석으로 달아놓았다 😆

 

 

이 다음으로는 api/라는 경로로 요청을 해서 실제로 add라는 함수가 어떻게 되어있는지 확인해보자!

(여기서 swagger를 다뤄볼 예정)

 

 

 

 

 

 

 

 

터미널에 나와있는 server주소를 클릭한 후 주소 맨 끝에 /api/docs를 붙여 요청해도 되고,

localhost:8000/api/docs를 주소창에 작성해도 똑같은 화면이 뜬다.

 

GET줄 맨 끝에 아래방향 화살표를 누르면

 

 

 

 

 

 

 

아래와 같은 화면이 뜨게 되는데, 이걸 Swagger 또는 open API 라 부른다!

 

 

 

 

코드에서 봤듯이 내가 적은 함수는 단순한 더하기를 리턴하는 함수였다.

이를 우리는 swagger를 통해 확인해볼 수 있다.

 

내가 적은 함수

 

 

 

 

 

 

 

 

먼저 Try it out이라는 버튼을 눌러 입력을 활성화시키고,

a와 b에 원하는 값을 넣은 후 Execute 버튼을 누르게 되면...!!!!!

 

위와 같이 값이 잘 나타나게 된다!

 

 

 

 

 

 

 

 

 

이렇게 Swagger를 만든 적이 없는데 만들어 진 이유는!

django-ninja가 view function의 parameter와 return값의 dictionary를 자동으로 감지한다.

이를 통해 Swagger문서를 자동으로 만들어준다!!

 

 

 

 

 

 

 

이제 대충 뭔가를 만들었으니 git이랑 연결해주려고 한다!

나는 타인이 인정하는 git master,,, 히히히힣 😎

git에 대해선 빠삭하지만, 그래도 한번더 정리하면서 개념정리 해봐야징~~

 

 

 

 

 

 

 

 

 

 

~ 여기서부턴 내가 자유롭게 끄적이는 것들 ~

 

먼저 git init을 진행해주고, .gitignore 파일 생성하기!

그리고는 add, commit까지 완료하기!

 

 

 

 

 

얘는 .gitignore에 대한 설명

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본격적인 setting은 다음 글에서 계속....!

 

 

 

✿ 도움이 되셨다면 댓글과 공감, 구독 눌러주세요오오오옷 ✿