2014-04-24 3 views
1

API 주위에 래퍼를 만들고 API 자체가 보유하고있는 정보를 보유하고 싶습니다. (업데이트 된 API 정보를 내 서버에도 보유하고 싶습니다.). 그렇다면 데이터를 예상 할 수있는 모델을 만들어야합니다.Django/python : API 관련 데이터의 모델 관계

그래서이 모델을 만들기 시작했습니다. 다음과 같이 가정 해 봅시다.

이제이 데이터는 필요할 때 꾸준히 수집되고 업데이트 될 것입니다. 그러면 API 데이터를 저장하기 위해 만들어진 모델 외에도 관련 데이터가 더 많지만 내 서버에만 관련이 있다고 가정 해 보겠습니다. 문제는 다음과 같습니다.이 데이터를 "확장"하는 가장 좋은 방법은 무엇입니까?

는 그 거기에 몇 가지 옵션을 느끼고, 하나 I는 같은 API를 모델을 확장 :

class Model(models.Model): 
    api_information = ForeignKey(ModelForAPI) 

아니면 내가 그런 것처럼 서브 클래스 :

class Model(ModelForAPI): 
    #model fields here 

내가 API 정보를 처리하고 있기 때문에 새로운 정보로 자주 업데이트 될 것입니다. 모델 아키텍처 측면에서 내 인생을 더 쉽게 만들어 줄지 확신하지 못합니다. 모든 포인터가 많이 감사 할 것입니다.

답변

1

이것을 달성하는 가장 간단한 방법 중 하나는 api-by-api 기반으로 API 데이터의 직렬화 된 버전을 저장하는 것입니다.

이렇게하면 스키마를 수정하지 않고도 실제 API 데이터에 많은 유연성을 얻을 수 있습니다. 또한 동일한 모델에 다양한 API 설정을 저장할 수 있습니다.

가 (물론 ... 종종 API 변수 환경 변수 라에게 Heroku에 저장하는 것이 좋습니다,하지만 당신의 전화입니다.)

+0

이 정확히 내가 찾던 물건의 유형, 어떻게 당신은 어디 알고 나는 이런 종류의 것을 읽을 수 있습니까? 귀하의 예를 들어 보면 복잡해 보입니다 (주로이 개념에 익숙하지 않으므로 : p) – ApathyBear

+0

참고 자료 (구체적으로)를 모르십니까? 본질적으로 이것은 데이터베이스에 문자열과 같은 기본 파이썬 객체 (예 : 사전)를 저장하는 방법 일뿐입니다. 드물게 사용, 예. 구성 변수를 사용하면 아마도 괜찮을 것입니다. ORM을 사용하여 데이터 필드를 쿼리하는 것이 어렵 기 때문에 "일반"모델의 경우에는이 작업을 수행하지 않을 것입니다. –