![Page 1: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/1.jpg)
Técnicas para preparação e desenvolvimento de sites com
djangoMário Chaves 26/02/2011
FA7
![Page 2: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/2.jpg)
Apresentação:
Desenvolvedor WEB eDesigner desde 2003
1.5 anos de Python =)
MBA em Design [email protected]
MÁRIOMÁRIO
![Page 3: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/3.jpg)
Python:
Nativo em:
Facilmente instalado em:
• Python (Oficial)• Active Python• ...
![Page 4: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/4.jpg)
PIP
Um poderoso substituto para o easy_install com mais funcionalidades
** PIP Install Packages **
![Page 5: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/5.jpg)
Comando: Install
pip install [nome do pacote]pip install -U [nome do pacote]
Traz a ultima versão do pacote disponível no Pypi (Python Package Index).
pip install -e hg+http://bitbucket.org/conta/projeto/
Instala pacote a partir de uma URL usando o parametro -e para informar o modo editable.
![Page 6: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/6.jpg)
Comando: Install
Utilizar operadores para especificar a versão desejada.
pip install [nome do pacote] == 1.2pip install [nome do pacote] >= 1.1pip install [nome do pacote] > 1.0pip install [nome do pacote] < 1.3pip install [nome do pacote] <= 0.8
![Page 7: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/7.jpg)
Comando: Uninstall
Desinstala pacotes do Python em execução.
pip uninstall [nome do pacote]
![Page 8: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/8.jpg)
Comando: Freeze
Lista todos os pacotes do Python que o pip está sendo executado.
pip freeze Fabric==0.9.3
SQLAlchemy==0.6.3 applib==1.0.1
distribute==0.6.14
![Page 9: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/9.jpg)
Comando: Freeze
Muito utilizado para gerar arquivo de requerimentos.
pip freeze > requerimentos-dev.txt
Facilidade na instalação de pacotes.pip install requerimentos-dev.txt
A partir de requerimentos_dev.txt podemos gerar um arquivo requerimentos_prod.txt
pip freeze -r requerimentos-dev.txt > requerimentos-prod.txt
![Page 10: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/10.jpg)
Comando: Bundle
Cria Bundles, Bundles são pacotes que contém vários pacotes.
pip bundle pybundlepip bundle pacote.pybundle pacote
Instalando um bundle com pacotes e dependências em outro ambiente.
pip install pacote.pybundle
![Page 11: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/11.jpg)
Comando: Search
Busca pacotes Python no PyPI.
pip search pacote
![Page 12: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/12.jpg)
Comando: Zip
Compacta pacotes. O pacote pode estar na raiz ou no PYTHONPATH do python em execução.
pip zip pacote
![Page 13: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/13.jpg)
Comando: Unzip
Descompacta o pacote especificado.
pip unzip pacote
![Page 14: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/14.jpg)
Comando: Help
Lista os comandos do pip.
pip help
![Page 15: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/15.jpg)
VirtualenvCrie ambientes virtuais isolados para
projetos Python
![Page 16: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/16.jpg)
Virtualenv: instalação
Crie ambientes virtuais isolados e instale qualquer pacote Python sem medo.
** Instale via pip **
pip install virtualenv
![Page 17: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/17.jpg)
Comando: virtualenv
Cria um ambiente virtual isolado.
virtualenv meu_python
Para não reaproveitar pacotes já instalados no Python em execução, utilize.
virtualenv --no-site-packages meu_python
![Page 18: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/18.jpg)
Ativar com activate
Ativar algum ambiente virtual previamente criado.
source path/to/meu_python/bin/activateou
. path/to/meu_python/bin/activate
Para se certificar que o ambiente foi ativado, veja se o nome do seu ambiente está no início da
linha do prompt de comando.Ex. (meu_python)$ _
![Page 19: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/19.jpg)
Desativar com deactivate
Desativar o ambiente virtual ativo.
(meu_python)$ deactivate
O prompt de comando retorna ao seu estado normal.
![Page 20: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/20.jpg)
VirtualenvwrapperVárias facilidades de uso para a
virtualenv!
![Page 21: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/21.jpg)
Virtualenvwrapper:
Facilidades? Porquê não instalar?
** Instale via pip **
pip install virtualenvwrapper
Após a instalação crie uma pasta chamada .virtualenvs em seu profile dir (unix ou
macos)
$ mkdir ~/.virtualenvs
![Page 22: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/22.jpg)
Virtualenvwrapper:
Após a instalação também é necessáriocarregar o script virtualenvwrapper.sh
adicione ao seu ~/.bashrc, ~/.bash_profileou ~/.profile no caso de MacOS
export WORKON_HOME= $HOME/.virtualenvssource /caminho/bin/virtualenvwrapper.sh
Agora é so reiniciar o terminal e começar a utilizar os recursos da virtualenvwrapper
![Page 23: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/23.jpg)
Comando: mkvirtualenv
Cria um ambiente virtual isolado similar ao virtualenv, sendo que não é necessário caminhar até o local onde o ambiente virtual será criado.
mkvirtualenv meu_python
Podendo passar os argumentos do comando virtualenv Ex. mkvirtualenv --no-site-packages
![Page 24: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/24.jpg)
Comando: rmvirtualenv
Remove o ambiente virtual
rmvirtualenv meu_python
PS. É necessário que o ambiente virtual esteja desativado.
![Page 25: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/25.jpg)
Comando: workon
Ativa um ambiente virtual.
workon meu_python
PS. Quando passado sem parâmetros, lista os ambientes virtuais disponíveis.
workon meu_pythonmeu_python
python_meu_projeto
![Page 26: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/26.jpg)
Comando: cdvirtualenv
Muda o diretório atual para o diretório da virtualenv em execução.
(meu_python)$ cdvirtualenv
(meu_python)$ pwd
(meu_python)$ /caminho/meu_python/
![Page 27: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/27.jpg)
Comando: cdsitepackages
Muda o diretório atual para o diretório do site packages da virtualenv em execução.
(meu_python)$ cdsitepackages
(meu_python)$ pwd
(meu_python)$ /python/site-packages/
![Page 28: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/28.jpg)
Comando: lssitepackages
Lista os pacotes disponíveis no site packages do ambiente atual.
(meu_python)$ lssitepackages
...Django-1.2.5-py.26.egg-info
PILimagekit
...
![Page 29: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/29.jpg)
Comando: cpvirtualenv
Clona um ambiente virtual existente.
cpvirtualenv meu_python clone_meu_python
![Page 30: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/30.jpg)
Aptana Studio + PydevIDE livre para desenvolvimento!
![Page 31: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/31.jpg)
Configuração básica do ambiente
File > New
![Page 32: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/32.jpg)
Configuração básica do ambiente
Configurar o interpretador
![Page 33: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/33.jpg)
Configuração básica do ambiente
Criar uma virtualenv para o projeto antes de configurar o Aptana
![Page 34: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/34.jpg)
Configuração básica do ambiente
![Page 35: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/35.jpg)
Configuração básica do ambiente
Clicar emSelect all
![Page 36: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/36.jpg)
Configuração básica do ambiente
![Page 37: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/37.jpg)
Configuração django project
![Page 38: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/38.jpg)
Configuração django project
![Page 39: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/39.jpg)
Configuração django project
![Page 40: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/40.jpg)
Comando: runserver
![Page 41: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/41.jpg)
Output: It worked!
![Page 42: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/42.jpg)
Outros comandos
![Page 43: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/43.jpg)
Pydev: auto-complete / code
![Page 44: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/44.jpg)
Pydev: auto-complete / templates
![Page 45: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/45.jpg)
Dicas gerais
• Criar imagens do layout para validação junto aos P.O's (Assinatura do P.O.s).
• Criar templates em html com css, js e imagens.
• Usar frameworks javascript para aumentar a produtividade no desenvolvimento de páginas mais interativas.
![Page 46: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/46.jpg)
Dicas do settings
• Criar módulo com configurações específicas.
• try:• from config import *• except ImportError, e:• raise e• +-----------------------------------------+• # -*- coding: utf-8 -*-• import os• ROOTDIR = os.path.dirname(__file__)• DATABASES = { #Configs do banco }• SECRET_KEY = "$k(&8nawrt*dt%%ei6e%m0wn0z-)bdh-^-jv-ryke"• # configurações de email• DEFAULT_FROM_EMAIL = "[email protected]"• ...
![Page 47: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/47.jpg)
Dicas do settings• Localização e internacionalização básica do projeto.
• TIME_ZONE = 'America/Fortaleza'• LANGUAGE_CODE = 'pt-br'• USE_I18N = True # Internacionalizar (trans)• USE_L10N = True # Localizar (datas, nºs ...)
• Informar diretórios e urls básicas ao settings
• MEDIA_ROOT = os.path.join(ROOTDIR, 'media')• MEDIA_URL = '/media/'• ADMIN_MEDIA_PREFIX = '/admin_media/'• TEMPLATE_DIRS = (os.path.join(ROOTDIR, 'media'),)
![Page 48: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/48.jpg)
Dicas do settings• Framework de mensagens do django.
• # Alocação das mensagens na sessão• MESSAGE_STORAGE =
'django.contrib.messages.storage• .session.SessionStorage’
• Login e logout urls
• LOGIN_URL = "/accounts/login/"• LOGOUT_URL = "/accounts/logout/"• LOGIN_REDIRECT_URL = "/"• Dados iniciais para tabelas padrões• FIXTURE_DIRS = (os.path.join(ROOTDIR, 'fixtures'),)• ./manage.py dumpdata --exclude=my_apps\• --format=json --indent=4 > fixtures/initial_data.json
![Page 49: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/49.jpg)
Dicas do settings, locale default
![Page 50: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/50.jpg)
Dicas do settings, locale default
![Page 51: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/51.jpg)
Templates pra dentro do django
• Passar os templates para o django sem funcionalidades.
• Inserir templates na raiz do diretório templates.
• Configurar rotas para acessá-los de forma estática.
urlpatterns = patterns('', url(r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'index.html', name='index'},)
![Page 52: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/52.jpg)
Dicas django
• Dividir o projeto em django apps.
• Criar uma app website para sessões simples e específicas do site (Equipe, Links, Contato, etc).
• Dependendo do tamanho e do custo do projeto, usar SQLite para desenevolvimento e produção.
• Automatizar CMS utilizando o admin do django.
![Page 53: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/53.jpg)
Dicas django• Utilizar flatpages para páginas do tipo "Sobre a empresa".
• Utilizar fixtures para configurações gerais e específicas de cada app com dados iniciais em json.
• Usar dumpdata para exportar dados em formato json.
• App para migração de dados, alteração em tables (South, Evolution, etc) e ajuda em debug com django debug-toolbar.
![Page 54: Técnicas para preparação e desenvolvimento de sites em django](https://reader033.vdocuments.com.br/reader033/viewer/2022061212/54965756ac7959132e8b50d4/html5/thumbnails/54.jpg)
fim!