O documento discute diversos tópicos sobre Python, incluindo: 1) Integração do Django com Adobe Flex para desenvolvimento de aplicações web; 2) Uso do PyGame para desenvolvimento de jogos; 3) Integração do Django com o PagSeguro para pagamentos online.
3. Django + Adobe Flex
• Aplicações web são normalmente organizadas em 3
camadas:
Apresentação
Lógica
Dados
• Django acelera muito o desenvolvimento das camadas
de lógica e de dados, mas não faz muito pela
camada de apresentação.
5. Adobe Flex
• Motivação:
• Cerca de 95% dos browsers têm o plugin
do Flash instalado;
• Desenvolvimento de aplicações web, para
diferentes browsers, com HTML e CSS é
difícil;
• A tecnologia Adobe Flex produz aplicações
web “bonitas” de forma mais produtiva.
7. Ferramentas
• Adobe Flex SDK:
• Grátis;
• Compilador (linha de comando) de arquivos MXML e AS para
SWF;
• Versões para Windows, Linux e Mac.
• Adobe Flex Builder:
• Editor visual integrado com o Eclipse;
• Ferramenta paga:
• Versão profissional: R$ 400,00
• Versão acadêmica: Grátis;
• Versões para Windows e Mac.
8. Integração de Flex com
Tecnologias de Servidor
• Flex é uma tecnologia apenas para camada
de apresentação;
• O lado servidor da aplicação pode ser
implementado com a tecnologia que
preferir (Java, PHP, Python, Ruby, .NET, etc);
• A comunicação pode ser feita:
• WebServices (XML ou JSON); lento e genérico
• Canais AMF. solução mais rápida e simples
9. Antes de começar
• LEMBREM-SE !!!
• Abram o prompt de comando (terminal);
• Configurem as variáveis de ambiente do seu
computador:
• No Windows (Linux não precisa):
PATH=%PATH%;C:Python26;C:Python26scripts
10. PyAMF
• Implementação do protocolo AMF para a
linguagem de programação Python;
• Instalação:
• Setup tools:
• easy_install pyamf prefira esta forma
• Ou, download do site http://pyamf.org
11. Instalando o
Flex Builder
• O Adobe Flex Builder vem de duas formas:
• Plugin para o Eclipse;
• Distribuição do Eclipse adaptada;
• Para esta aula dispomos do Adobe Flex Builder
Eclipse Plugin versão 3.0;
• Atenção, este plugin apenas funciona na versão
3.4 (Ganymede) do Eclipse.
12. Configurando
Django + PyAmf
• Dentro da sua aplicação crie um módulo
chamado amfgateway;
• Modifique o módulo urls principal, criando
uma regra para o amf gateway.
13. Módulo amfgateway
import pyamf
from pyamf.remoting.gateway.django import DjangoGateway
import meuprojeto.aplicacao.views as views
from meuprojeto.aplicacao import models
services = {
'Servicos': views,
}
pyamf.register_package(models, 'meuprojeto.aplicacao.models')
meuGateway = DjangoGateway(services, expose_request=False)
17. PyGame
• Implementação da biblioteca SDL para a
linguagem de programação Python;
• Permite a utilização de imagens, sons e
dispositivos de entrada facilmente em
programas Python.
25. UOL PagSeguro
• O PagSeguro é um componente que
permite a sites receber pagamentos de
diferentes fontes:
• Cartões de crédito;
• Boletos bancários.
26. UOL PagSeguro
• Funcionamento:
• Você deve se cadastrar no PagSeguro:
• http://www.pagseguro.com.br
• Seu site deve enviar os dados para o PagSeguro
com o seu número de cliente;
• O PagSeguro irá intermediar todo o processo de
pagamento;
• Assim que o pagamento tenha sido confirmado, o
PagSeguro irá notificar a sua aplicação.
32. def concluir(request):
if request.method == 'POST':
# token gerado no painel de controle do PagSeguro
token = '12345699CA2AAAF4599EA697BB2F7FFF'
p = PagSeguro()
retorno = p.processar(token, request.POST)
if retorno == True:
try:
# Cadastra os dados recebidos no banco de dados.
# Utilize o request.POST.get('nomedocampo') para obter os valores
except:
pass
return HttpResponse('Ok')
else:
return HttpResponse('Error')
else:
# Carrega tela contendo a mensagem de compra realizada
return direct_to_template(request,'carrinho/concluir.html')
33. Django + Apache
• O servidor web integrado do Django deve
ser utilizado apenas para desenvolvimento
e testes;
• Quando for implantar a sua aplicação em
produção utilize o Apache.
34. Apache
• Servidor Web mais utilizado no mundo;
• Gratuito e de código aberto;
• Disponível para todas os sistemas
operacionais;
• Nativamente serve páginas estáticas;
• Pode servir conteúdo dinâmico a partir de
módulos (plugins) instalados.
35. mod_python
• Módulo para execução de scripts python
dentro do servidor web;
• Os módulos funcionam associando padrões
de URL a arquivos (no caso do python,
scripts);
• Instalação:
• sudo apt-get libapache2-mod-python
36. Adicionando a aplicação
ao Apache
• Edite o arquivo httpd.conf:
• sudo gedit /etc/apache2/http.conf
• Adicione as seguintes linhas:
<Location "/meusite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE meusite.settings
PythonOption django.root /meusite
PythonDebug On
PythonPath "['/home/local/projetos'] + sys.path"
</Location>
37. Adicionando os
arquivos estáticos
• Para que o módulo admin continue
funcionando no Apache é necessário copiar
os seus arquivos estáticos para o Apache;
• Copie todos os arquivos da pasta:
• django/contrib/admin/media
• Para a pasta:
• /var/www
38. Dicas
• Quem se interessa pelo desenvolvimento em sistemas
móveis, atenção ao Python S60;
• Para utilizar é necessário baixar o Nokia S60 SDK;
• Bibliotecar para gerar relatórios PDF em Python: PISA;
• Os softwares Inkscape, GIMP, Blender e BrOffice são
feitos, totalmente ou parcialmente, em Python e
podem ser extendidos em Python através de plugins
ou de macros;
• O livro Python para Desenvolvedores é
gratuito.