[Django] 장고로 만들지 않은 파일에서 장고 연동하기

Jay·2020년 4월 12일
0

컬리 프로젝트를 진행하며 상품을 크롤링 하고 있는데, 장고로 테이블을 구성한 서브카테고리 테이블의 id값(foreign key)을 가져와야 했다. 크롤링 파일은 장고 앱으로 만들지 않았기에, 장고에 접근할 수 없는 상황이다.

이럴 경우 일단 크롤링 파일 앞에 이런 코드가 선행되어야 한다.

import os
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<프로젝트 명>.settings') [1]
django.setup() 							       [2]

[1][2]

그리고 중요한 점은 해당 크롤링 파일이 manage.py가 있는 위치에 같이 있어야한다. (이걸 몰라서 꼬박 이틀을 헤맸다)

이렇게 하면 크롤링 파일이 장고에 접근, 장고로 만든 테이블의 데이터베이스에 접근해 데이터를 가져올 수 있다.

크롤링 파일 :

import os
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'WeketKurly_backend.settings')
django.setup()

for product in products
    product_num = product['no']
    url = f'https://api.kurly.com/v3/home/products/{product_num}?&ver=1585655639453'
    det_url = requests.get(url).json()
    det_url = det_url['data']
    sub_category_id = SubCategory.objects.get(name = sub).id
    sub_category_ids.append(sub_category_id)
profile
You're not a computer, you're a tiny stone in a beautiful mosaic

0개의 댓글