[Django] Django를 사용한 API 작성과 연결

Yungsang Hwang·2022년 5월 31일
0

Django

목록 보기
3/15
post-thumbnail

📌 사용된 IDE는 Pychram 입니다!

프로젝트 생성

가상환경 세팅

  • 프로젝트를 만들 위치를 선정한다
  • new -> new project 로 프로젝트 셋업 실행
  • 왼쪽 탭에서 Django로 세팅환경을 변경하고, project 위치를 다시 제대로 잡아준다
  • 사용할 python 버전을 고르고 create!

앱 생성

프로젝트를 기능 별로 구분할 앱을 생성하기(user, tweet, blog...)
앱을 실행하기 위해서 Pycharm Terminal에서 다음의 명령어를 작성한다

django-admin startapp user
django-admin startapp tweet
  • user라는 앱을 하나 만들어주겠다!
  • tweet이라는 앱을 하나 만들어주겠다!

앱 연결

앱을 생성해주면 프로젝트 앱에 접근하여 기본 세팅을 수정해줘야 비로소 연결이 된 것이다!
프로젝트 폴더에서 settings.py 를 수정한다

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user',
    'tweet',
]
  • INSTALLED_APPS에서 맨 아래에 user와 tweet 처럼 만들어준 앱 이름을 작성해준다

API 작성

url + view = API

Python Flask에서는 API를 작성할 때 app.py 파일 하나에 서버 실행부터 API 기능까지 모두 들어있다!

Django에서는 API를 작성할 때, URL/API기능 으로 나누어 작성하고 프로젝트와 연결해줘야 한다!

app/views.py

기능을 보여줄 앱 내부의 views.py 안에 함수를 작성한다.

from django.http import HttpResponse

def sign_up_view(request):
	return HttpResponse("connect test")
  • 프론트에서 정해진 URL에 접근하면 def sign_up_view()에 request를 담아 실행한다!

app/urls.py

작성한 기능을 실행시켜줄 함수이름과 url주소를 urls.py 안에 작성한다

from django.urls import path
from . imoprt views

urlpattern = [
	path('sign-up/', views.sign_up_view, name='sign-up'),
]
  • django.urls 의 path 메서드를 사용
  • 모든 것 중에 views라는 파일을 가져오기
  • urlspattern에 path라는 주소넣기
  • 주소는 sign-up/에 접근할 때 sign_up_view를 실행, 이름은 sign-up

앱의 URL과 프로젝트 연결

앱에서 작성한 views와 urls는 모두 프로젝트에 연결되어 있는 상태는 아니다!
따라서 앱에 접근할 수 있도록 프로젝트의 urls를 수정해준다!

project/urls.py

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('user.urls')),
    path('', include('tweet.urls')),
]
  • django.urls의 include 기능을 가져와 다른 앱을 참조한다
  • path 중 user/tweet 앱의 urls의 경로도 모두 포함한다는 의미!

프론트엔드 연결

프론트엔드에 연결하기 위해서는 urls에 적어둔 주소를 프론트엔드에 작성해주면 된다
본 예제는 뼈대 부분이라서

  • frontend -> url -> views(request->response) -> frontend
<a href="/sign-up/">API작동!</a>
  • a 태그에 넣어둔 주소로 API를 요청한다!
profile
하루종일 몽상가

0개의 댓글