postgresql +python

Download Postgresql +python

Post on 25-May-2015

172 views

Category:

Technology

0 download

Embed Size (px)

DESCRIPTION

Apresentação da palestra realizada na Conferência Brasileira de PostgreSQL - PGBR em 2013 na cidade de Porto Velho - Rondônia - Brasil, que apresenta a integração da Linguagem Python com o banco de dados PostgreSQL usando psycopg2.

TRANSCRIPT

  • 1. Marcos Thomaz da Silva PostgreSQL +Python/Django Uma Parceria de Sucesso

2. Graduao em Sistemas de Informao Especializao em Bancos de Dados Analista de Tecnologia da Informao da Universidade Federal do Acre Desenvolvedor Clipper, Delphi, PHP e Python Participante e Moderador da Lista Django Brasil; Entusiasta PostgreSQL Perfil do Instrutor 3. Criada por Guido van Rossun no Instituto de Pesquisa Nacional para Matemtica e Cincia da Computao de Amsterdam; Nome originado da srie britnica Monty Python Flying Circus; Lanada em 1991; Linguagem de alto nvel; Interpretada; Gera bytecodes (pyc, pyo); Python 4. Multiplataforma; Python 5. Python Endentao como delimitador de blocos; 6. Possui Interpretador Interativo; Python 7. Tipagem dinmica e forte; Python 8. Orientada a Objetos; Herana (inclusive herana mltipla); Polimorfismo; Suporte a metaclasse; Tratamento de Excees; Trabalha nativamente com tipos primitivos e estruturas complexas (listas, dicionrios, tuplas); Introspeco (Reflection); Python 9. Python 10. Sobrecarga de operadores; Python 11. Jython CPython IronPython PyPy PyObjC (Mac OSX middleware) Python for Delphi Brython Python - Interoperabilidade 12. Gerao de scripts; Suporte a administradores de redes; Apoio a outros sistema, etc; Acesso a bancos de dados; Suporte a praticamente todos os bancos de dados excelente com PostgreSQL (psycopg2); Desenvolvimento web; Existncia de diversos frameworks: Django, Pyramid, Web2Py; Ferramenta de Gerenciamento de Contedo (Plone); Onde / quando usar python 13. Desenvolvimento Desktop; Uso de GTK, QT, wxWindow, etc; Diversos Editores de Cdigo; Pagos: Pycharm, Sublime Text, Komodo, WingIDE, Ninja IDE; Livres: PyDev (Eclipse), Eric, Pida, Boa-Constructor, Notepad++, Vim; Desenvolvimento de ERPs: OpenERP, Stoq; Desenvolvimento de Jogos: PyGame, PyOpenGL Onde / quando usar python 14. rea Cientfica: Scipy, NumPy; Aplicaes Geo: Mapproxy (com Postgis); Inteligncia Artificial; Animaes 3D (Blender); Aplicativos Mveis ; Onde / quando usar python 15. Python Quem usa? 16. Python Quem Usa 17. Python Quem Usa 18. Python site www.python.org 19. Python site: www.python.org.br 20. Psycopg / Psycopg2 21. o mais popular adaptador Python para PostgreSQL; Oferece acesso a praticamente todos os recursos do PostgreSQL; Liberado sob os termos LGPL; Atualmente na verso 2.5.1; Multiplataforma; Instalao: Windows: Binrio; Linux / Mac: Pacote; Psycopg2 22. Escrito a maior parte em C; Faz uso da libpq (objetivando melhor desempenho e segurana); Suporte a todas as verses do Python atuais; Suporte a todas as verses do PostgreSQL (acima da 7); Implementao totalmente compatvel com as especificaes de adaptadores de Bancos de Dados Python; Thread-safe: as threads podem compartilhar a mesma conexo ou usar conexes diferentes; Possui adaptao de diversos tipos de dados python; Psycopg2 23. Possui typecasters que convertem tipos do PostgreSQL para objetos python; Possui cursores Server-Side; Suporte ao comando COPY; Pode enviar e receber notificaes assncronas; Suporta commit em duas fases; Permite a converso de tipos decimal / numeric (PostgreSQL) para tipos float ou Decimal (Python); Psycopg2 24. Conectando a uma base de dados Psycopg2 Alguns Exemplos Desconectando de uma base de dados 25. Criando uma tabela e inserindo dados Psycopg2 Alguns Exemplos 26. Alterando e excluindo registros de uma tabela Psycopg2 Alguns Exemplos 27. Converso de tipo automtica e setar o encoding no cliente: Psycopg2 Alguns Exemplos 28. Framework Web; Criado por Adrian Holovaty em 2005; Inicialmente seria apenas um gerenciador de notcias; Licena BSD; Nome inspirado no msico de jazz Django Reinhardt Escrito em Python Utiliza padro MVC Conceito DRY Django 29. Possui ORM prprio; Acesso a diversos bancos; PostgreSQL; MySQL; Oracle; DB2; SQLServer; Permite multi-bancos; Permite herana; Classes Abstratas Django - Recursos 30. Possui ORM prprio; Chaves estrangeiras; Relaes Many-To-Many; Indicao de ndices nicos; Indicao de chaves primrias; Trabalha com arquivos; Permite mtodos adicionais; Django - Recursos 31. Possui Sistema prprio de Templates Permite herana de templates; Permite condicionais: if; Permite iteraes: for; Possui filtros especiais; Proteo contra tags especiais (html); Possui formatao de data; Internacionalizao; Cache; Django - Recursos 32. Interface Administrativa muito poderosa e flexvel; Permite o cadastro de usurios e grupos (especificando o acesso); Permite a criao de listagens com busca, filtros (inclusive por data) e sintaxes adicionais; Django - Recursos 33. Integrao com o PostGis (inclusive na Interface Administrativa); GeoDjango, MapProxy e Leaflet; Django - Recursos 34. Interface Administrativa CRUD Bsico /Intermedirio; Personalizao de templates; Adio de recursos; Gerar modelos mestre-detalhe; Gerao de Novos Widgets; Adio de Rotinas e Mdulos (grapelly, django-admin-shortcut); Gerao de aes e sistemas rpidos; Django - Recursos 35. Internacionalizao; Cache por pgina, view ou consulta ; Memcached; Memria; Arquivos; Flatpages; Feeds; Coleta de Arquivos Estticos; Envio de Email; Validao de URLs de Recuperao de Email; Django Outros Recursos 36. Gerao de Logs; Aplicaes Plugveis; Deploy Simplificado (FastCGI, WSGI); Compatibilidade com Servidores Web (Apache, nginx, lighthttpd, cherokee, etc); Middleware; Multibanco; Class Based Views; E o mais importante... Simplicidade! Django Outros Recursos 37. Tudo muito legal mas.... E o PostgreSQL com isso?? 38. Conector python compatvel com a maioria dos recursos do PostgreSQL; Conexo nativa / homologada com o ORM do Django; Possibilidade de execuo segura de transaes (incluindo em duas fases); Proteo contra SQL Injection; Proteo contra CSRF; Proteo contra XSS; Eis a razo.... 39. Converso precisa e automtica entre tipos do PostgreSQL para os tipos do Python e vice-versa; Uso de Tablespaces; Uso de schemas (com aplicaes plugveis); Ampla documentao; Facilidade no Deploy; Simplicidade no Desenvolvimento; Um pouco mais... 40. Excelente desempenho; Gerao de migrations; Gerao de modelos a partir de bancos legados; Integrao nativa com o Postgis; Interface administrativa com diversas funes; Integrao da interface administrativa com o postgis; Solues de suporte e complemento ao postgis (MapProxy, Mapnik); Ambiente Livre; Integrao com Jquery, bootstrap, angularJS, Hightcarts; E ainda mais... 41. Cardpio RU (UFAC); Plano de Metas 100 dias (UFAC); Onde foi utilizado Aplicaes Pequenas 42. Sistema de Busca de Documentos Finder (UFAC); Sistema de Pedidos - www.youtube.com/watch?v=emUXmvlGP0E Sistema Simulador de Financiamentos Imobilirios - CET Sistema de Protocolo Ufac (Integrao com DB2); SUAP Usado por Institutos Federais (des. IFRN) Onde foi utilizado Aplicaes Pequenas 43. Sistema de Gesto Imobiliria Cohab Acre; aQui Alli Sistema Gerador de HotSites e catlogo online; Sistema de Registro de Projetos UFAC; Sistema de Gesto de Processos Seletivos (gesto de 250 mil candidatos registrados) UFAC Sistema de Gesto Escolar Ensino Mdio CAp/UFAC Diversos sites: http://www.djangosites.org/ Onde foi utilizado Aplicaes de Mdio Porte 44. Obrigado! Dvidas?? Marcos Thomaz marcosthomazs@gmail.com