django에서 REST framework를 사용하기
django에 API 서버를 구성하기 위해 REST framework를 설치한다.
- django REST framework
- django REST framework는 Web APIs 들을 만들기 위해 파워풀하고 유연한 툴킷이다.
☞ 정보 : https://www.django-rest-framework.org/
- 이전에 설치한 가상환경으로 이동한다.
pubd_api % ls
bin include lib pubdapi pyvenv.cfg
pubd_api % source bin/activate
(pubd_api) pubd_api %
- djangorestframework를 install 한다.
- Successfully installed djangorestframework-3.15.2 나오면 성공
- pip install djangorestframework 입력
(pubd_api) pubd_api % pip install djangorestframework
Collecting djangorestframework
Downloading djangorestframework-3.15.2-py3-none-any.whl.metadata (10 kB)
Requirement already satisfied: django>=4.2 in ./lib/python3.12/site-packages (from djangorestframework) (5.0.6)
Requirement already satisfied: asgiref<4,>=3.7.0 in ./lib/python3.12/site-packages (from django>=4.2->djangorestframework) (3.8.1)
Requirement already satisfied: sqlparse>=0.3.1 in ./lib/python3.12/site-packages (from django>=4.2->djangorestframework) (0.5.1)
Downloading djangorestframework-3.15.2-py3-none-any.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 2.6 MB/s eta 0:00:00
Installing collected packages: djangorestframework
Successfully installed djangorestframework-3.15.2
(pubd_api) pubd_api %
- django filtering support 도 설치한다.
- pip install django-filter 입력
(pubd_api) pubd_api % pip install django-filter
Collecting django-filter
Downloading django_filter-24.2-py3-none-any.whl.metadata (5.1 kB)
Requirement already satisfied: Django>=4.2 in ./lib/python3.12/site-packages (from django-filter) (5.0.6)
Requirement already satisfied: asgiref<4,>=3.7.0 in ./lib/python3.12/site-packages (from Django>=4.2->django-filter) (3.8.1)
Requirement already satisfied: sqlparse>=0.3.1 in ./lib/python3.12/site-packages (from Django>=4.2->django-filter) (0.5.1)
Downloading django_filter-24.2-py3-none-any.whl (94 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.5/94.5 kB 2.4 MB/s eta 0:00:00
Installing collected packages: django-filter
Successfully installed django-filter-24.2
(pubd_api) pubd_api %
- settings.py 파일 수정
- INSTALLED_APPS에 'rest_framework', 추가
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
]
- settings.py 에 REST_Framework 부분 insert
# 참조 URL
# https://www.django-rest-framework.org/api-guide/settings/
# https://www.django-rest-framework.org/api-guide/authentication/
# https://www.django-rest-framework.org/api-guide/permissions/
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
],
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser',
'rest_framework.parsers.FormParser',
'rest_framework.parsers.MultiPartParser'
],
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication'
],
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
#If not specified, this setting defaults to allowing unrestricted access:
#'rest_framework.permissions.AllowAny',
],
}
- urls.py 파일 수정
- path('api/', include('rest_framework.urls')), 추가
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('rest_framework.urls')),
]
마무리
REST Framework의 설치와 기본적인 세팅을 완료했다.
다음에는 Front-End와 통신을 위해 cors 크로스 도메인 오류를 해결하기 위한 세팅을 해본다.
☞ python, django 설치는 이전 글 참고
https://yuneenelife.tistory.com/entry/API-Server-django-python-Framework-설치-1
'국회도서관 자료검색 서비스' 카테고리의 다른 글
pylint 로 python 가상환경 venv 코드와 vs code 와 연결시키기 #7 (0) | 2024.08.06 |
---|---|
django cors 크로스 도메인 오류 해결 #6 (0) | 2024.08.05 |
공공데이터 포털 에서 원하는 서비스 API 신청하기 #4 (0) | 2024.08.02 |
django cycle, 프로젝트 구조 및 language, timezone 변경하기 #3 (0) | 2024.08.01 |
django app 생성하고 소스에 git 설치하기 #2 (0) | 2024.07.31 |