Técnicas para preparação e desenvolvimento de sites em django
-
Upload
mario-chaves -
Category
Technology
-
view
2.755 -
download
4
description
Transcript of Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites com
djangoMário Chaves 26/02/2011
FA7
Apresentação:
Desenvolvedor WEB eDesigner desde 2003
1.5 anos de Python =)
MBA em Design [email protected]
MÁRIOMÁRIO
Python:
Nativo em:
Facilmente instalado em:
• Python (Oficial)• Active Python• ...
PIP
Um poderoso substituto para o easy_install com mais funcionalidades
** PIP Install Packages **
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.
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
Comando: Uninstall
Desinstala pacotes do Python em execução.
pip uninstall [nome do pacote]
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
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
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
Comando: Search
Busca pacotes Python no PyPI.
pip search pacote
Comando: Zip
Compacta pacotes. O pacote pode estar na raiz ou no PYTHONPATH do python em execução.
pip zip pacote
Comando: Unzip
Descompacta o pacote especificado.
pip unzip pacote
Comando: Help
Lista os comandos do pip.
pip help
VirtualenvCrie ambientes virtuais isolados para
projetos Python
Virtualenv: instalação
Crie ambientes virtuais isolados e instale qualquer pacote Python sem medo.
** Instale via pip **
pip install virtualenv
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
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)$ _
Desativar com deactivate
Desativar o ambiente virtual ativo.
(meu_python)$ deactivate
O prompt de comando retorna ao seu estado normal.
VirtualenvwrapperVárias facilidades de uso para a
virtualenv!
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
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
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
Comando: rmvirtualenv
Remove o ambiente virtual
rmvirtualenv meu_python
PS. É necessário que o ambiente virtual esteja desativado.
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
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/
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/
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
...
Comando: cpvirtualenv
Clona um ambiente virtual existente.
cpvirtualenv meu_python clone_meu_python
Aptana Studio + PydevIDE livre para desenvolvimento!
Configuração básica do ambiente
File > New
Configuração básica do ambiente
Configurar o interpretador
Configuração básica do ambiente
Criar uma virtualenv para o projeto antes de configurar o Aptana
Configuração básica do ambiente
Configuração básica do ambiente
Clicar emSelect all
Configuração básica do ambiente
Configuração django project
Configuração django project
Configuração django project
Comando: runserver
Output: It worked!
Outros comandos
Pydev: auto-complete / code
Pydev: auto-complete / templates
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.
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]"• ...
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'),)
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
Dicas do settings, locale default
Dicas do settings, locale default
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'},)
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.
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.
fim!