Introdução ao Python (& Web Services!) Faculdade Anglo-Americano, Caxias do Sul, RS 17 de Setembro de 2010
Agenda ‣ Quem sou eu? ‣ O que é Python? ‣ Introdução ao Python ‣ Web Services com Python ‣ Recados Finais
Quem sou eu? ‣ Dorneles “déo” Tremea ‣ Diretor X3ng Web Technology ‣ Desenvolvedor Senior Enfold Systems (Plone) ‣ Presidente Associação Python Brasil ‣ Vice-Presidente do GTiC Serra Gaúcha ‣ Apenas um rapaz latino
O que é Python? ‣ Linguagem programação de propósito geral ‣ Tipagem dinâmica e forte ‣ Sintaxe concisa e clara ‣ Recursos poderosos na biblioteca padrão ‣ Modelo de desenvolvimento comunitário
Histórico ‣ Dezembro 1989: Criada pelo holandês Guido van Rossum ‣ Fevereiro 1991: Código publicado em alt.sources (versão 0.9.0) ‣ Janeiro 1994: Lançada versão 1.0 (1.2, 1.4, 1.6) ‣ Outubro 2000: Série 2.x (2.0, 2.1, 2.2, 2.3, 2.4, 2.5 2.6, 2.7)
Implementações ‣ CPython: Python implementado em C ‣ Jython: Python implementado em Java ‣ IronPython: Python implementado para .NET ‣ PyPy: Python implementado em Python!
Interpretador ‣ Um dos grandes trunfos da linguagem ‣ Permite executar o código diretamente
Indentação ‣ Linguagem de fácil leitura ‣ Sem pontuação/delimitadores desnecessários ‣ Separação de blocos de código por espaços ‣ Indentação precisa ser consistente ‣ Obrigatória!
Palavras Reservadas ‣ and del from not while ‣ as elif global or with ‣ assert else if pass yield ‣ break except import print ‣ class exec in raise ‣ continue finally is return ‣ def for lambda try
Operadores ‣ + - * ** / // % ‣ << >> & | ^ ~ ‣ < > <= >= == != <> ‣ += -= *= /= //= %= ‣ &= |= ^= >>= <<= **=
Funções Built-in ‣ abs all any bin chr cmp hex oct ‣ bool complex divmod iter ord pow ‣ delattr getattr setattr hasattr id ‣ enumerate max min len range sum ‣ dict float int list str set tuple ‣ print globals locals dir help repr ‣ input isinstance property type zip ‣ ...
Exceções ‣ try/except/finally/else ‣ Exception AttributeError KeyError ‣ IOError ImportError NameError ‣ ValueError StopIteration SystemExit ‣ ...
Biblioteca Padrão ‣ Baterias incluídas! :-) ‣ Módulos principais disponíveis na instalação padrão ‣ Módulos adicionais diponíveis no repositório de pacotes da comunidade: PyPI
Mão na massa! :-) ‣ Estruturas condicionais ‣ Laços de repetição ‣ Tratamento de exceções ‣ Manipulação de arquivos ‣ Criação de funções e classes
Web Services ‣ Sopa de letrinhas! ‣ XML / DTD / XSD / XPath / ... ‣ RPC / CORBA / RMI / DCOM / ... ‣ UDDI / WDSL / SOAP / REST / ... ‣ :-(
Preparação do ‣ Instalando pacotes adicionais ‣ Baixar arquivo (virtualenv.py): http://tinyurl.com/virtualenv-trunk ‣ Executar: python virtualenv.py webservices ‣ Executar: cd webservices source bin/activate (linux)
Biblioteca suds ‣ Implementação simples de um Cliente SOAP ‣ https://fedorahosted.org/suds/wiki/ Documentation ‣ Instalação: pip install suds
Dados Copa África ‣ Exemplo: from suds.client import Client url = "http:// footballpool.dataaccess.eu/data/ info.wso?WSDL" soap = Client(url) print soap print soap.RedCardsTotal()
Outros Web ‣ http://www.webservicex.net ‣ http://www.xmethods.net ‣ Google!
Últimos Recados ‣ Estatísticas ‣ Associação Python Brasil ‣ Grupos de Usuários ‣ Eventos
Estatísticas ‣ http://br.groups.yahoo.com/group/ python-brasil: 3299 membros ‣ http://br.groups.yahoo.com/group/ zope-pt: 1096 membros ‣ http://groups.google.com/group/ django-brasil: 1479 membros ‣ Associados APyB: 156 membros
Associação Python ‣ O que é? O que faz? Por quê? ‣ Estruturada (e burocrática) ‣ Reuniões quinzenais dos conselhos e diretoria ‣ Como fazer parte? ‣ http://associacao.python.org.br
Grupos de Usuários ‣ Comunidades regionais autônomas ‣ Abrangência nacional ‣ http://python.org.br/wiki/ GrupoDeUsuarios ‣ PythOnRio, GruPy-SP / PUG-SP, PUG-CE, GruPy-RS... ‣ APyB pode ajudar ‣ Subdomínios python.org.br
Eventos ‣ PythonBrasil[6]: evento nacional da comunidade Python, em sua sexta edição! ‣ De 21 a 23 de outubro de 2010 em Curitiba/PR ‣ Inscrições abertas, participe! ‣ http://www.pythonbrasil.org.br
Contato ‣ Muito obrigado! ‣ Dorneles Treméa <deo@python.org.br> ‣ Twitter: @dorneles, @apyb, @pythonbrasil

Introdução ao Python & Web Services

  • 1.
    Introdução ao Python (& Web Services!) Faculdade Anglo-Americano, Caxias do Sul, RS 17 de Setembro de 2010
  • 2.
    Agenda ‣ Quem soueu? ‣ O que é Python? ‣ Introdução ao Python ‣ Web Services com Python ‣ Recados Finais
  • 3.
    Quem sou eu? ‣Dorneles “déo” Tremea ‣ Diretor X3ng Web Technology ‣ Desenvolvedor Senior Enfold Systems (Plone) ‣ Presidente Associação Python Brasil ‣ Vice-Presidente do GTiC Serra Gaúcha ‣ Apenas um rapaz latino
  • 4.
    O que éPython? ‣ Linguagem programação de propósito geral ‣ Tipagem dinâmica e forte ‣ Sintaxe concisa e clara ‣ Recursos poderosos na biblioteca padrão ‣ Modelo de desenvolvimento comunitário
  • 5.
    Histórico ‣ Dezembro 1989:Criada pelo holandês Guido van Rossum ‣ Fevereiro 1991: Código publicado em alt.sources (versão 0.9.0) ‣ Janeiro 1994: Lançada versão 1.0 (1.2, 1.4, 1.6) ‣ Outubro 2000: Série 2.x (2.0, 2.1, 2.2, 2.3, 2.4, 2.5 2.6, 2.7)
  • 6.
    Implementações ‣ CPython: Pythonimplementado em C ‣ Jython: Python implementado em Java ‣ IronPython: Python implementado para .NET ‣ PyPy: Python implementado em Python!
  • 7.
    Interpretador ‣ Um dosgrandes trunfos da linguagem ‣ Permite executar o código diretamente
  • 8.
    Indentação ‣ Linguagem defácil leitura ‣ Sem pontuação/delimitadores desnecessários ‣ Separação de blocos de código por espaços ‣ Indentação precisa ser consistente ‣ Obrigatória!
  • 9.
    Palavras Reservadas ‣ and del from not while ‣ as elif global or with ‣ assert else if pass yield ‣ break except import print ‣ class exec in raise ‣ continue finally is return ‣ def for lambda try
  • 10.
    Operadores ‣ + - * ** / // % ‣ << >> & | ^ ~ ‣ < > <= >= == != <> ‣ += -= *= /= //= %= ‣ &= |= ^= >>= <<= **=
  • 11.
    Funções Built-in ‣ abs all any bin chr cmp hex oct ‣ bool complex divmod iter ord pow ‣ delattr getattr setattr hasattr id ‣ enumerate max min len range sum ‣ dict float int list str set tuple ‣ print globals locals dir help repr ‣ input isinstance property type zip ‣ ...
  • 12.
    Exceções ‣ try/except/finally/else ‣ Exception AttributeError KeyError ‣ IOError ImportError NameError ‣ ValueError StopIteration SystemExit ‣ ...
  • 13.
    Biblioteca Padrão ‣ Bateriasincluídas! :-) ‣ Módulos principais disponíveis na instalação padrão ‣ Módulos adicionais diponíveis no repositório de pacotes da comunidade: PyPI
  • 14.
    Mão na massa!:-) ‣ Estruturas condicionais ‣ Laços de repetição ‣ Tratamento de exceções ‣ Manipulação de arquivos ‣ Criação de funções e classes
  • 15.
    Web Services ‣ Sopade letrinhas! ‣ XML / DTD / XSD / XPath / ... ‣ RPC / CORBA / RMI / DCOM / ... ‣ UDDI / WDSL / SOAP / REST / ... ‣ :-(
  • 16.
    Preparação do ‣ Instalandopacotes adicionais ‣ Baixar arquivo (virtualenv.py): http://tinyurl.com/virtualenv-trunk ‣ Executar: python virtualenv.py webservices ‣ Executar: cd webservices source bin/activate (linux)
  • 17.
    Biblioteca suds ‣ Implementaçãosimples de um Cliente SOAP ‣ https://fedorahosted.org/suds/wiki/ Documentation ‣ Instalação: pip install suds
  • 18.
    Dados Copa África ‣Exemplo: from suds.client import Client url = "http:// footballpool.dataaccess.eu/data/ info.wso?WSDL" soap = Client(url) print soap print soap.RedCardsTotal()
  • 19.
    Outros Web ‣ http://www.webservicex.net ‣http://www.xmethods.net ‣ Google!
  • 20.
    Últimos Recados ‣ Estatísticas ‣Associação Python Brasil ‣ Grupos de Usuários ‣ Eventos
  • 21.
    Estatísticas ‣ http://br.groups.yahoo.com/group/ python-brasil:3299 membros ‣ http://br.groups.yahoo.com/group/ zope-pt: 1096 membros ‣ http://groups.google.com/group/ django-brasil: 1479 membros ‣ Associados APyB: 156 membros
  • 22.
    Associação Python ‣ Oque é? O que faz? Por quê? ‣ Estruturada (e burocrática) ‣ Reuniões quinzenais dos conselhos e diretoria ‣ Como fazer parte? ‣ http://associacao.python.org.br
  • 23.
    Grupos de Usuários ‣Comunidades regionais autônomas ‣ Abrangência nacional ‣ http://python.org.br/wiki/ GrupoDeUsuarios ‣ PythOnRio, GruPy-SP / PUG-SP, PUG-CE, GruPy-RS... ‣ APyB pode ajudar ‣ Subdomínios python.org.br
  • 24.
    Eventos ‣ PythonBrasil[6]: eventonacional da comunidade Python, em sua sexta edição! ‣ De 21 a 23 de outubro de 2010 em Curitiba/PR ‣ Inscrições abertas, participe! ‣ http://www.pythonbrasil.org.br
  • 25.
    Contato ‣ Muito obrigado! ‣Dorneles Treméa <deo@python.org.br> ‣ Twitter: @dorneles, @apyb, @pythonbrasil

Notas do Editor

  • #4 - Diretor da X3ng, empresa ga&amp;#xFA;cha exportadora de servi&amp;#xE7;os. - Especialista em Gest&amp;#xE3;o do Conhecimento e Intelig&amp;#xEA;ncia Estrat&amp;#xE9;gica pela UCS. - Presidente da Associa&amp;#xE7;&amp;#xE3;o Python Brasil. - Vice-presidente do Grupo de TI e Comunica&amp;#xE7;&amp;#xE3;o da Serra Ga&amp;#xFA;cha. - Desenvolvedor s&amp;#xEA;nior na Enfold Systems. - Respons&amp;#xE1;vel por parte do lado i18n do Plone. - Colaborador de projetos FLOSS. - Gamer inveterado. - Pai-coruja, colorado e apreciador incondicional de novas tecnologias, culin&amp;#xE1;ria japonesa, sandu&amp;#xED;ches e do suco de ma&amp;#xE7;&amp;#xE3; noruegu&amp;#xEA;s.
  • #21 - Entidade sem fins lucrativos - Fundada em 22 de Junho de 2007 - Coordena os esfor&amp;#xE7;os nacionais de divulga&amp;#xE7;&amp;#xE3;o sobre Python - Mant&amp;#xE9;m a infraestrutura dos servidores dos diferentes sites - Aloca fundos para palestras sobre a linguagem - Objetivo de receber doa&amp;#xE7;&amp;#xF5;es dedut&amp;#xED;veis do IRPJ
  • #23 - Entidade sem fins lucrativos - Fundada em 22 de Junho de 2007 - Coordena os esfor&amp;#xE7;os nacionais de divulga&amp;#xE7;&amp;#xE3;o sobre Python - Mant&amp;#xE9;m a infraestrutura dos servidores dos diferentes sites - Aloca fundos para palestras sobre a linguagem - Objetivo de receber doa&amp;#xE7;&amp;#xF5;es dedut&amp;#xED;veis do IRPJ
  • #25 PythonBrasil[1], Campinas, Unicamp, 2005 PythonBrasil[2], Bras&amp;#xED;lia, Interlegis, 2006 PythonBrasil[3], Joinville, SOCIESC, 2007 PythonBrasil[4], Rio de Janeiro, UVA, 2008 PythonBrasil[5], Caxias do Sul, UCS, 2009 PythonBrasil[6], Curitiba, UFPR, 2010