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

Jay·2020년 4월 12일

컬리 프로젝트를 진행하며 상품을 크롤링 하고 있는데, 장고로 테이블을 구성한 서브카테고리 테이블의 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개의 댓글