1 minute read

프젝 생성하기 가상환경 생성하기

settings.py수정 후 python manage.py makemigrations

만약 모델 다운이 안되있다 하면 pip install 모델 명

python manage.py migrate 입력하여 변경사항 저장

migrate 뜻 알기

터미널에 뜨는 url눌러서 확인 ***

quiz 모델 생성

시리얼라이저 생성 장고의 모델 형태로 되어있는 모델 데이터를 json 타입으로 바꿔주는 (직렬화) 코드 장고 모델 데이터를 템플릿에 뿌려주면 웹에 보여지듯이, JSON 타입으로 뿌려주면 API로 통신이 되는것임. 쉽게 말해, 내 데이터를 JSON으로 바꿔주는 기계

quiz 폴더 안에 serializer.py 생성

그 안에 from rest_framework import serializers 와 사용할 모델(Quiz)를 임포트 한다.

위의 임포트 하는 과정에서 에러가 난다면(나는 분명 다운받았는데…!!)

Import “rest_framework” could not be resolved. VSCode에서 command(win은 ctrl) + shift + P 해서 “Python: Select Interpreter” 해서 내 가장환경으로 변경해주면 에러가 사라짐!


helloAPI 생성

# views.py
from rest_framework.response import Response
from rest_framework.decorators import api_view

# HelloAPI로 파악하기, get 메소드 방식
@api_view(['GET'])
def helloAPI(request):
  return Response("hello world!")

작성했으면 이를 실행시키기 위한 url이 필요 urls.py 생성

myapi 아래의 urls.py 파일과 앱 안의 urls.py파일은 다른 것 앱 안의 urls.py파일은 해당 엡에 대한 url을 관리하고 myapi의 파일은 전체 플젝트에 대한 url을 관리 따라서 앱의 url파일을 면저 설정하고, 이것을 myapi의 url에 연결

앱 내의 url 설정

# app 내의 url.py
from django.urls import path, include
from .views import helloAPI

urlpatterns = [
  path("hello/", helloAPI)
]

전체 프로젝트의 url 설정

from django.urls import path, include
from django.contrib import admin

urlpatterns = [
    path('admin/', admin.site.urls),
    path('quiz/', include('quiz.urls')),
]

실행 후 /quiz/hello 에 접속 시 정상작동 확인

이후 동일한 방식으로 Quiz 모델에 배해서 API 개발

앱 내의 admin.py 파일에 Quiz를 등록해 관리자 페이지에서 Quiz 모델을 관리할 수 있게 함

from django.contrib import admin
from .models import Quiz

# 이렇게 등록을 할 시 관리자 페이지에서 Quiz모델을 관리할 수 있음
admin.site.register(Quiz)

이제는 Quiz 모델을 사용하기 때문에 makemigrations을 해야함 맨 위의 migrations 관련 명령어를 두개 입력할 시 Migrations for ‘quiz’: 가 뜨게 됨


관리자 페이지를 사용하기 위한 관리자 계정(superuser) 생성

python manage.py createsuperuser

admin으로 로그인하여 퀴즈 생성

생성 후 로컬/quiz/3입력 시 json으로 3개의 데이터가 불러와지는 것을 확인할 수 있다.

Tags:

Categories:

Updated: