How to provide initial data for models¶
응용프로그램을 처음 설정할 때 하드 코딩된 데이터로 데이터베이스를 미리 채우는 것이 유용합니다. 마이그레이션 또는 고정 장치와 함께 초기 데이터를 제공할 수 있습니다.
마이그레이션으로 초기 데이터 제공하기.¶
앱의 초기 데이터를 자동으로 로드하려면 :ref:’데이터 마이그레이션’을 생성하십시오. 마이그레이션은 테스트 데이터베이스를 설정할 때 실행되므로:ref:’일부 제한 사항’에 따라 데이터를 사용할 수 있습니다.
고정 장치를 통해 데이터를 제공합니다.¶
고정 장치를 사용하여 데이터를 제공할 수도 있지만 이 데이터는 TransactionTestCase.fixtures
. 를 사용하는 경우를 제외하고 자동으로 로드되지 않습니다.
고정 장치는 Django가 데이터베이스로 가져오는 방법을 알고 있는 데이터의 모음입니다. 데이터가 이미 있는 경우 고정장치를 만드는 가장 간단한 방법은 :tembadmin:’manage.py dumpdata’ 명령을 사용하는 것입니다. 또는 수동으로 고정장치를 작성할 수 있으며 고정장치는 JSON, XML 또는 YAML(PyYAML_installed) 문서로 작성할 수 있습니다. :doc:’직렬화 설명서’는 지원되는 각:ref:’직렬화 형식’에 대한 자세한 정보를 제공합니다.
그러나 한 예로 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"
}
}
]
그리고 YAML로 된 동일한 fixture 가 있습니다.
- model: myapp.person
pk: 1
fields:
first_name: John
last_name: Lennon
- model: myapp.person
pk: 2
fields:
first_name: Paul
last_name: McCartney
이 데이터는 앱 안에 있는 “고정장치” 디렉토리에 저장됩니다.
:djadmin:’manage’를 호출하여 데이터를 로드할 수 있습니다.pyload data ``”는 당신이 만든 fixture 파일의 이름입니다. 실행할 때마다:djadmin:load data(로드 데이터)는 고정장치에서 데이터를 읽고 데이터베이스에 다시 로드됩니다. 이는 고정 장치에 의해 생성된 행 중 하나를 변경한 후 다음을 실행하는 경우입니다.데이터를 다시 로드하면 변경 내용이 모두 지워집니다.
Django가 고정 파일을 찾는 위치입니다.¶
기본적으로 Django는 각 앱에 있는 “fixtures” 디렉토리에서 고정 장치를 찾습니다. : 설정을 설정할 수 있습니다.FIXT_DIRS는 Django가 찾아야 할 추가 디렉토리 목록으로 설정됩니다.
실행 시 :djadmin:’manage’입니다.py load data’. 고정 파일 경로를 지정할 수도 있습니다. 이 경로는 일반적인 디렉터리 검색을 재정의합니다
더 보기
또한 :ref:’testing framework’에서는 고정장치를 사용하여 일관된 테스트 환경을 설정할 수 있습니다.