2013-01-24 7 views
0

데이터를 장고 프로젝트에 정기적으로 가져오고 싶습니다. 공급자에게 데이터를 수신 할 형식을 알려야합니다. Json, XML, CSV에서 데이터를 요청해야합니까?Django로 데이터를 가져 오는 좋은 방법

대개 장고에서이 문제를 어떻게 처리합니까?

답변

6

장고에는 Fixtures라는 데이터를 가져 오기위한 전체 프레임 워크가 있습니다. 사용 가능한 형식 (JSON은 분명히 있음)에 대해 읽을 수 있습니다. https://docs.djangoproject.com/en/dev/howto/initial-data/

데이터의 모양에 대한 예도 있습니다. 예를 들면 : 당신이

+0

는 최고 사용하는 조언을 것입니다! 내가 필요한 것. 이제 Django 모델과 반드시 ​​일치하지 않는 데이터를 얻으려면 원본 JSON 데이터를 적절한 JSON 픽스처로 변환하여 장고로 가져올 수있는 프로그램을 만들어야한다고 가정합니다. – edu222

+1

그렇습니다. json을 구문 분석하고, 필요에 따라 수정하고,'json.load'와'json.dump'를 사용하여 json을 침을 뱉을 수 있기 때문에 보통 그렇게 어렵지 않습니다. 이 대답이 만족 스럽다면 대답 옆에있는 확인란을 클릭하십시오. 감사! –

+2

OP가 * 기존 데이터 *가있는 모델에 * 추가 ​​데이터 *를로드하는 경우 이것이 작동하지 않을 것이라고 생각합니다. 'loaddata' 1) *는'pk' (프라이 머리 키) 필드 (에러 검사가 없습니다)를 필요로합니다. 2)'.save()'처리를 바이 패스합니다. 라이브 시스템에서'pk'의 다음 값은 움직이는 목표이므로 "추측하기"쉽지 않을 것입니다. 기존 객체의'pk'를 사용하면 * 그 객체를 덮어 씁니다. * –

0

당신이 CSV 또는 XML을 지원하려면 python manage.py loaddata /path/to/beatles.json을 실행하여 beatles.json로, 당신이 그것을 가져올 수 있음을 저장 한 경우

[ 
    { 
    "model": "myapp.person", 
    "pk": 1, 
    "fields": { 
     "first_name": "John", 
     "last_name": "Lennon" 
    } 
    }, 
    { 
    "model": "myapp.person", 
    "pk": 2, 
    "fields": { 
     "first_name": "Paul", 
     "last_name": "McCartney" 
    } 
    } 
] 

, 나는 django-adaptors

관련 문제