Olá, no post anterior vimos como organizamos os nossos pacotes em diferentes arquivos. Hoje vamos dar sequência a série, organizando os arquivos settings do django assim como o uso do unipath.

Vamos organizar um arquivo base de configurações.

Dentro do nosso diretório do projeto vamos criar uma pasta chamada settings.

(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br/pywatch [master]
± % ls
 __init__.py  requirements  settings.py  urls.py  wsgi.py
(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br/pywatch [master]
± % mkdir settings

Mova o arquivo settings.py para dentro da pasta settings, com o nome base.py.

(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br/pywatch [master]
± % mv settings.py settings/base.py; touch settings/__init__.py

Configure o arquivo base.py

No inicio do arquivo configure o interpretador python e import o Unipath.

  1 #!/usr/bin/env python
  2 # -*- coding:utf-8 -*-
  3
  4 from unipath import Path
  5 PROJECT_DIR = Path(__file__).ancestor(3)

O PROJECT_DIR será o caminho do arquivo base.py, 02 diretórios acima, contados a partir do arquivo. Ou seja: /home/lucas/workspace-django/pywatch.com.br/pywatch/settings/base.py, meu PROJECT_DIR será o diretório /home/lucas/workspace-django/pywatch.com.br/.

O próximo passo é setar o DEBUG=False.

Insira seu nome e email dentro da tupla de ADMINS.

ADMINS = (
    ('Lucas Simon Rodrigues Magalhaes', 'lucassrod@gmail.com'),
 )

Delete a configuração do DATABASES. Sim, sem medo pode remover, pois a configuração de banco de dados estará separa em settings diferentes.

Insira a tupla de LANGUAGES.

LANGUAGES = (
   ('pt-br', u'Portugues'),
   ('en-us', u'Ingles'),
)

Altere o TIMEZONE='America/Sao_Paulo'

Altere o LANGUAGE_CODE = 'pt-br'

Configure o diretório de MEDIA_ROOT.

MEDIA_ROOT = PROJECT_DIR.child('media')

Crie esse diretório na raiz do seu projeto.

(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br [master *]
± % mkdir media

Altere o MEDIA_URL = '/media/'

Configure o diretório STATIC_ROOT.

STATIC_ROOT = PROJECT_DIR.child('public')

Crie esse diretório na raiz do seu projeto.

(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br [master *]
± % mkdir -p public

Insira na tupla STATICFILES_DIRS.

STATICFILES_DIRS = (
      PROJECT_DIR.child("assets"),
)

Crie esse diretório na raiz do seu projeto.

(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br [master *]
± % mkdir -p assets

Insira na tupla TEMPLATE_DIRS.

TEMPLATE_DIRS = (
     PROJECT_DIR.child("templates"),
)

Crie esse diretório na raiz do seu projeto.

(pywatch)
lucas@lucas-Inspiron-1525 ~/workspace-django/pywatch.com.br [master *]
± % mkdir -p templates

Concluindo

Nesse post organizamos as configurações base de um projeto Django.

Na Parte 3 desta série iremos separar os settings de desenvolvimento, produção e testes.