---
title: "FAQ: Usando o Django"
version: 5.2
locale: pt-br
source: https://docs.djangoproject.com/pt-br/5.2/faq/usage/
canonical: https://djangodocs.dev/pt-br/5.2/faq/usage/
---
# FAQ: Usando o Django

## Por que recebo um erro sobre importar o [`DJANGO_SETTINGS_MODULE`](/pt-br/5.2/topics/settings/#envvar-DJANGO_SETTINGS_MODULE)?

Certifique-se de que:

- The environment variable [`DJANGO_SETTINGS_MODULE`](/pt-br/5.2/topics/settings/#envvar-DJANGO_SETTINGS_MODULE) is set to a
  fully-qualified Python module (i.e. `mysite.settings`).
- O módulo citado está em `sys.path` (`import meuSite.settings` deve funcionar).
- O módulo não contém erros de sintaxe.

## Eu não gosto da sua linguagem de template. Eu preciso usá-la?

Nós pensamos que nosso mecanismo de template é a melhor do mundo mas, reconhecemos que escolher uma linguagem de template é quase como escolher uma religião. Django não força nenhuma linguagem de template, então se você gosta de: Jinja2, Mako ou qualquer outra, sinta-se livre para utilizá-las.

## Eu tenho que usar o seu modelo/camada de banco de dados?

Não. Tal qual o sistema de template, a camada de modelos/banco de dados é desacoplada do resto da estrutura.

A única exceção é: se você usar uma biblioteca diferente de banco de dados você não conseguirá usar o admin do Django gerado de forma automática. Ele é fortemente acoplado a camada de banco de dados do Django

## Como eu utilizo campos de imagem e de arquivo?

Usando um [`FileField`](/pt-br/5.2/ref/models/fields/#django.db.models.FileField) ou um [`ImageField`](/pt-br/5.2/ref/models/fields/#django.db.models.ImageField) em um modelo, seguido pelos passos:

1. Em seu arquivo de configurações, você precisará definir [`MEDIA_ROOT`](/pt-br/5.2/ref/settings/#std-setting-MEDIA_ROOT) como o caminho completo para um diretório onde você gostaria que o Django armazenasse os arquivos enviados. (Para desempenho, esses arquivos não são armazenados no banco de dados.) Defina [`MEDIA_URL`](/pt-br/5.2/ref/settings/#std-setting-MEDIA_URL) como a URL pública base desse diretório. Certifique-se de que este diretório seja gravável pela conta de usuário do servidor web.
2. Adicione a classe [`FileField`](/pt-br/5.2/ref/models/fields/#django.db.models.FileField) ou [`ImageField`](/pt-br/5.2/ref/models/fields/#django.db.models.ImageField) no seu modelo, definindo a opção [`upload_to`](/pt-br/5.2/ref/models/fields/#django.db.models.FileField.upload_to) para especificar o subdiretório da configuração [`MEDIA_ROOT`](/pt-br/5.2/ref/settings/#std-setting-MEDIA_ROOT) para usar para arquivos enviados.
3. Tudo que vai ser armazenado no seu banco de dados será o caminho para o arquivo (referente a configuração [`MEDIA_ROOT`](/pt-br/5.2/ref/settings/#std-setting-MEDIA_ROOT)). Você vai poder usar o atributo [`url`](/pt-br/5.2/ref/models/fields/#django.db.models.fields.files.FieldFile.url) provido pelo Django. Por exemplo, se sua classe [`ImageField`](/pt-br/5.2/ref/models/fields/#django.db.models.ImageField) se chama `mug_shot`, você pode pegar o caminho absoluto para sua imagem no template com: `{{ object.mug_shot.url }}`.

## Como eu torno uma variável disponível para todos os meus templates?

Algumas vezes todos os templates precisarão da mesma coisa. Um exemplo comum são os menus gerados dinamicamente. À primeira vista, parece lógico adicionar um dicionário comum ao contexto do template

A melhor maneira de fazer isso no Django é usar um `RequestContext`. Detalhes de como fazer isso estão aqui: [Using RequestContext](/pt-br/5.2/ref/templates/api/#subclassing-context-requestcontext).
