데이터를 장고 프로젝트에 정기적으로 가져오고 싶습니다. 공급자에게 데이터를 수신 할 형식을 알려야합니다. Json, XML, CSV에서 데이터를 요청해야합니까?Django로 데이터를 가져 오는 좋은 방법
대개 장고에서이 문제를 어떻게 처리합니까?
데이터를 장고 프로젝트에 정기적으로 가져오고 싶습니다. 공급자에게 데이터를 수신 할 형식을 알려야합니다. Json, XML, CSV에서 데이터를 요청해야합니까?Django로 데이터를 가져 오는 좋은 방법
대개 장고에서이 문제를 어떻게 처리합니까?
장고에는 Fixtures라는 데이터를 가져 오기위한 전체 프레임 워크가 있습니다. 사용 가능한 형식 (JSON은 분명히 있음)에 대해 읽을 수 있습니다. https://docs.djangoproject.com/en/dev/howto/initial-data/
데이터의 모양에 대한 예도 있습니다. 예를 들면 : 당신이
당신이 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
는 최고 사용하는 조언을 것입니다! 내가 필요한 것. 이제 Django 모델과 반드시 일치하지 않는 데이터를 얻으려면 원본 JSON 데이터를 적절한 JSON 픽스처로 변환하여 장고로 가져올 수있는 프로그램을 만들어야한다고 가정합니다. – edu222
그렇습니다. json을 구문 분석하고, 필요에 따라 수정하고,'json.load'와'json.dump'를 사용하여 json을 침을 뱉을 수 있기 때문에 보통 그렇게 어렵지 않습니다. 이 대답이 만족 스럽다면 대답 옆에있는 확인란을 클릭하십시오. 감사! –
OP가 * 기존 데이터 *가있는 모델에 * 추가 데이터 *를로드하는 경우 이것이 작동하지 않을 것이라고 생각합니다. 'loaddata' 1) *는'pk' (프라이 머리 키) 필드 (에러 검사가 없습니다)를 필요로합니다. 2)'.save()'처리를 바이 패스합니다. 라이브 시스템에서'pk'의 다음 값은 움직이는 목표이므로 "추측하기"쉽지 않을 것입니다. 기존 객체의'pk'를 사용하면 * 그 객체를 덮어 씁니다. * –