이번 포스트는 알라딘 API를 통해 수집한 데이터를 Django 프로젝트 DB에 저장하는 방법에 대해 정리한 것입니다.
API에서 데이터를 수집할 때에는 기본적으로 해당 사이트에서 제공하는 공식 문서를 잘 확인해봐야합니다.
알라딘 API 공식 문서를 켜두고 포스트를 읽는 것을 권장할게요!
API로 데이터 수집하고 DB에 저장하는 방법
1. models.py 작성하기
# <앱 이름>/models.py
from django.db import models
import requests
API_URL = 'https://www.aladin.co.kr/ttb/api/ItemList.aspx'
API_KEY = '발급 받은 키'
# Create your models here.
class Book(models.Model):
isbn = models.CharField(max_length=10)
title = models.TextField()
author = models.TextField()
pub_date = models.DateField()
description = models.TextField()
pricesales = models.IntegerField()
pricestandard = models.IntegerField()
publisher = models.TextField()
@classmethod
def insert_data(cls):
params = {
'ttbkey': API_KEY,
'QueryType': 'ItemNewAll',
'MaxResults': '10',
'start': '1',
'SearchTarget': 'Book',
'output': 'js',
'Version': '20131101',
}
response = requests.get(API_URL, params=params)
data = response.json()
for item in data.get('item'):
my_model = cls(
isbn=item['isbn'],
title=item['title'],
author=item['author'],
pub_date=item['pubDate'],
description=item['description'],
pricesales=item['priceSales'],
pricestandard=item['priceStandard'],
publisher=item['publisher'],
)
my_model.save()
클래스 메서드를 만들어, 알라딘 API에서 데이터를 가져와 DB에 저장하는 역할을 담당하도록 합니다.
2. Django Shell에서 클래스 메서드 실행하기
python manage.py shell_plus
위 명령어를 통해 Django shell에 접근합니다.
이제 처음에 모델에서 만들어준 클래스 메서드 insert_data를 실행해주면 됩니다.
DB를 확인해보면, 아래와 같이 DB에 데이터가 들어온 것을 확인할 수 있습니다.
'Study > Django' 카테고리의 다른 글
[Django] django-html에서 자동 완성이 안될 때 해결법 (0) | 2024.09.24 |
---|---|
[Django] QuerySet API (0) | 2024.09.23 |
[Django] include를 이용한 URL 매핑 (1) | 2024.09.23 |
[Django] 관리자 페이지 접근하기 (0) | 2024.09.23 |