---
title: "Fornecendo dados iniciais para modelos."
version: 1.9
locale: pt-br
source: https://docs.djangoproject.com/pt-br/1.9/howto/initial-data/
canonical: https://djangodocs.dev/pt-br/1.9/howto/initial-data/
---
# Fornecendo dados iniciais para modelos.

Algumas vezes é útil pré-popular seu banco de dados com dados codificados no sistema quando  se está configurando uma aplicação pela primeira vez. Você pode fornecer dados iniciais através das “fixtures”.

## Fornecendo dados iniciais com “fixtures”

Uma fixture é uma coleção de dados que o Django sabe como importar para o banco de dados. A maneira mais fácil de criar uma “fixture” se você já tem  algum dado é usar o comando [`manage.py dumpdata`](/pt-br/1.9/ref/django-admin/#django-admin-dumpdata). Ou, você pode escrever fixtures manualmente; “fixtures” podem ser escritas como documentos JSON, XML ou YAML (com [PyYAML](http://www.pyyaml.org/) installed). O [documentos de serialização](/pt-br/1.9/topics/serialization/) tem mais detalhes sobre cada um destes [formatos de serialização](/pt-br/1.9/topics/serialization/#serialization-formats).

Como exemplo, no entanto, aqui o que uma “fixture” para um simples modelo `Person` se parece no formato json.

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

E aqui a mesma “fixtre” como YAML:

```
- model: myapp.person
  pk: 1
  fields:
    first_name: John
    last_name: Lennon
- model: myapp.person
  pk: 2
  fields:
    first_name: Paul
    last_name: McCartney
```

Você armazenará este dado em um diretório `fixtures` dentro de sua app.

Carregar dados é simples: apenas chame [`manage.py loaddata`](/pt-br/1.9/ref/django-admin/#django-admin-loaddata) `<fixturename>`, onde `<fixturename>` é o nome do arquivo de “fixture” que você criou. Cada vez que executar [`loaddata`](/pt-br/1.9/ref/django-admin/#django-admin-loaddata), os dados serão lidos da “fixture” e recarregados no banco de dados. Isso significa que se você alterar uma de suas linhas do banco de dados criadas por uma fixture e então executar [`loaddata`](/pt-br/1.9/ref/django-admin/#django-admin-loaddata)  denovo, você irá perder qualquer alteração que tenha feito.

### Onde o Django encontra arquivos de “fixture”

Por padrão, o Django procura por “fixtures” no diretório `fixtures` dentro de cada app. Você definir a [`FIXTURE_DIRS`](/pt-br/1.9/ref/settings/#std-setting-FIXTURE_DIRS) como uma lista de diretórios adicionais onde o Django deve procurar.

Quando chamar [`manage.py loaddata`](/pt-br/1.9/ref/django-admin/#django-admin-loaddata), você pode especificar um caminho para o arquivo de “fixture”, o qual é procurado no lugar dos diretórios usuais.

> **See also**
>
> As “Fixtures” são também usadas pelo [testing framework](/pt-br/1.9/topics/testing/tools/#topics-testing-fixtures) para auxiliar na configuração de um ambiente de teste consistente.
