Curso de PythonAula 8 - Tópicos Especiais          Bruno Gama Catão      brunogamacatao@gmail.com
Agenda• Django + Adobe Flex;• PyGame;• Django + UOL PagSeguro;• Django + Apache;• Dicas.
Django + Adobe Flex• Aplicações web são normalmente organizadas em 3  camadas:                 Apresentação               ...
Camada de     Apresentação                Aplicações+                  Web+Baseadas+                   RIA+         HTML5+...
Adobe Flex• Motivação:  • Cerca de 95% dos browsers têm o plugin    do Flash instalado; • Desenvolvimento de aplicações we...
Arquitetura           LayoutMXML$                     SWF$        Flex%SDK%                    (Flash)$ AS$          Lógica
Ferramentas•   Adobe Flex SDK:    •   Grátis;    •   Compilador (linha de comando) de arquivos MXML e AS para        SWF; ...
Integração de Flex comTecnologias de Servidor• Flex é uma tecnologia apenas para camada  de apresentação;• O lado servidor...
Antes de começar• LEMBREM-SE !!!• Abram o prompt de comando (terminal);• Configurem as variáveis de ambiente do seu  comput...
PyAMF• Implementação do protocolo AMF para a  linguagem de programação Python;• Instalação: • Setup tools:    • easy_insta...
Instalando o             Flex Builder• O Adobe Flex Builder vem de duas formas: • Plugin para o Eclipse; • Distribuição do...
Configurando     Django + PyAmf• Dentro da sua aplicação crie um módulo  chamado amfgateway;• Modifique o módulo urls princi...
Módulo amfgatewayimport pyamffrom pyamf.remoting.gateway.django import DjangoGatewayimport meuprojeto.aplicacao.views as v...
Módulos urlsurlpatterns = patterns(,    ...    (r^gateway/, meuprojeto.aplicacao.amfgateway.meuGateway),)
E no lado Flex ?<mx:RemoteObject id="servicos" endpoint="http://localhost:8000/gateway/" destination="Servicos">	   ...</m...
Exemplo
PyGame• Implementação da biblioteca SDL para a  linguagem de programação Python;• Permite a utilização de imagens, sons e ...
Primeiro exemplo
Primitivas e Teclado
Imagens
Sons
UOL PagSeguro• O PagSeguro é um componente que  permite a sites receber pagamentos de  diferentes fontes: • Cartões de cré...
UOL PagSeguro• Funcionamento: • Você deve se cadastrar no PagSeguro:   • http://www.pagseguro.com.br • Seu site deve envia...
Formulário
<form action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx method=POST>	   <input type="hidden" name="...
Módulo pagseguro.py
import sysimport urllib2, urllibfrom django.http import HttpResponse  class Pagamento(object):     def _conectar(self, url...
Função concluir
def concluir(request):    if request.method == POST:        # token gerado no painel de controle do PagSeguro        token...
Django + Apache• O servidor web integrado do Django deve  ser utilizado apenas para desenvolvimento  e testes;• Quando for...
Apache• Servidor Web mais utilizado no mundo;• Gratuito e de código aberto;• Disponível para todas os sistemas  operaciona...
mod_python• Módulo para execução de scripts python  dentro do servidor web;• Os módulos funcionam associando padrões  de U...
Adicionando a aplicação      ao Apache• Edite o arquivo httpd.conf: • sudo gedit /etc/apache2/http.conf• Adicione as segui...
Adicionando os    arquivos estáticos• Para que o módulo admin continue  funcionando no Apache é necessário copiar  os seus...
Dicas• Quem se interessa pelo desenvolvimento em sistemas  móveis, atenção ao Python S60;• Para utilizar é necessário baix...
Python 08
Python 08
Python 08
Upcoming SlideShare
Loading in...5
×

Python 08

575

Published on

Última aula do curso de Python, aqui mostramos de forma superficial como fazer a integração do Django com Adobe Flex, como utilizar o módulo do PagSeguro, PyGame e como integrar sua aplicação com o Apache

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
575
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Python 08

    1. 1. Curso de PythonAula 8 - Tópicos Especiais Bruno Gama Catão brunogamacatao@gmail.com
    2. 2. Agenda• Django + Adobe Flex;• PyGame;• Django + UOL PagSeguro;• Django + Apache;• Dicas.
    3. 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.
    4. 4. Camada de Apresentação Aplicações+ Web+Baseadas+ RIA+ HTML5+em+HTML+ Microso<+ Adobe+Flex+ Java+FX+ Siverlight+
    5. 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.
    6. 6. Arquitetura LayoutMXML$ SWF$ Flex%SDK% (Flash)$ AS$ Lógica
    7. 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. 8. Integração de Flex comTecnologias 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. 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. 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. 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. 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. 13. Módulo amfgatewayimport pyamffrom pyamf.remoting.gateway.django import DjangoGatewayimport meuprojeto.aplicacao.views as viewsfrom meuprojeto.aplicacao import modelsservices = { Servicos: views,}pyamf.register_package(models, meuprojeto.aplicacao.models)meuGateway = DjangoGateway(services, expose_request=False)
    14. 14. Módulos urlsurlpatterns = patterns(, ... (r^gateway/, meuprojeto.aplicacao.amfgateway.meuGateway),)
    15. 15. E no lado Flex ?<mx:RemoteObject id="servicos" endpoint="http://localhost:8000/gateway/" destination="Servicos"> ...</mx:RemoteObject>
    16. 16. Exemplo
    17. 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.
    18. 18. Primeiro exemplo
    19. 19. Primitivas e Teclado
    20. 20. Imagens
    21. 21. Sons
    22. 22. UOL PagSeguro• O PagSeguro é um componente que permite a sites receber pagamentos de diferentes fontes: • Cartões de crédito; • Boletos bancários.
    23. 23. 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.
    24. 24. Formulário
    25. 25. <form action=https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx method=POST> <input type="hidden" name="email_cobranca" value="brunogamacatao@gmail.com"/> <input type="hidden" name="tipo" value="CP"/> <input type="hidden" name="moeda" value="BRL"/> <input type="hidden" name="ref_transacao" value="{{referenciaCompra}}"/> <input type="hidden" name="cliente_nome" value="{{nomeCompleto}}"/> <input type="hidden" name="cliente_cep" value="{{cep}}"/> <input type="hidden" name="cliente_end" value="{{endereco}}"/> <input type="hidden" name="cliente_num" value="{{numero}}"/> <input type="hidden" name="cliente_compl" value="{{complemento}}"/> <input type="hidden" name="cliente_bairro" value="{{bairro}}"/> <input type="hidden" name="cliente_cidade" value="{{cidade.nome}}"/> <input type="hidden" name="cliente_uf" value="{{estado.sigla}}"/> <input type="hidden" name="cliente_pais" value="BRA"/> <input type="hidden" name="cliente_ddd" value="{{telefone_ddd}}"/> <input type="hidden" name="cliente_tel" value="{{telefone}}"/> <input type="hidden" name="cliente_email" value="{{email}}"/> <input type="hidden" name="encoding" value="utf-8"/> {{for produto in produtos}} <input type="hidden" name="item_id_{{forloop.counter}}" value="{{produto.id}}"/> <input type="hidden" name="item_descr_{{forloop.counter}}" value="{{produto.titulo}}"/> <input type="hidden" name="item_quant_{{forloop.counter}}" value="{{produto.quantidade}}"/> <input type="hidden" name="item_valor_{{forloop.counter}}" value="{{produto.valor * 10)}"/> <input type="hidden" name="item_frete_{{forloop.counter}}" value="{{produto.valor_frete}}"/> <input type="hidden" name="item_peso_{{forloop.counter}}" value="{{produto.peso}}"/> {{end for}}</form>
    26. 26. Módulo pagseguro.py
    27. 27. import sysimport urllib2, urllibfrom django.http import HttpResponse  class Pagamento(object):  def _conectar(self, url, params): query_str = urllib.urlencode(params) req = urllib2.Request(url, query_str) f = urllib2.urlopen(req) conteudo = f.read() f.close() return conteudo  def _enviar(self, url, params): retorno = self._conectar(url, params) if retorno.lower() == verificado: return True else: return False PS_URL = https://pagseguro.uol.com.br/Security/NPI/Default.aspxclass PagSeguro(Pagamento): def processar(self, token, params, url=PS_URL): if not params: return False else: lista = [] for key in params.keys(): lista.append((key,params[key])) lista.append((Comando, validar)) lista.append((Token, token))  return self._enviar(url, lista)
    28. 28. Função concluir
    29. 29. 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)
    30. 30. 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.
    31. 31. 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.
    32. 32. 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
    33. 33. 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>
    34. 34. 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
    35. 35. 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.
    1. Gostou de algum slide específico?

      Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

    ×