Marcos Thomaz da Silva PostgreSQL +Python/Django – Uma Parceria de Sucesso
• Graduação em Sistemas de Informação • Especialização em Bancos de Dados • Analista de Tecnologia da Informação da Universidade Federal do Acre • Desenvolvedor Clipper, Delphi, PHP e Python • Participante e Moderador da Lista Django Brasil; • Entusiasta PostgreSQL Perfil do Instrutor
• Criada por Guido van Rossun no Instituto de Pesquisa Nacional para Matemática e Ciência da Computação de Amsterdam; • Nome originado da série britânica Monty Python Flying Circus; • Lançada em 1991; • Linguagem de alto nível; • Interpretada; • Gera bytecodes (pyc, pyo); Python
• Multiplataforma; Python
Python • Endentação como delimitador de blocos;
• Possui Interpretador Interativo; Python
• Tipagem dinâmica e forte; Python
• Orientada a Objetos; ▫ Herança (inclusive herança múltipla); ▫ Polimorfismo; ▫ Suporte a metaclasse; • Tratamento de Exceções; • Trabalha nativamente com tipos “primitivos” e estruturas complexas (listas, dicionários, tuplas); • Introspecção (Reflection); Python
Python
• Sobrecarga de operadores; Python
• Jython • CPython • IronPython • PyPy • PyObjC (Mac OSX middleware) • Python for Delphi • Brython Python - Interoperabilidade
• Geração 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; ▫ Existência de diversos frameworks: Django, Pyramid, Web2Py; • Ferramenta de Gerenciamento de Conteúdo (Plone); Onde / quando usar python
• Desenvolvimento Desktop; ▫ Uso de GTK, QT, wxWindow, etc; • Diversos Editores de Código; ▫ Pagos: Pycharm, Sublime Text, Komodo, WingIDE, Ninja IDE; ▫ Livres: PyDev (Eclipse), Eric, Pida, Boa-Constructor, Notepad++, Vim; • Desenvolvimento de ERP’s: ▫ OpenERP, Stoq; • Desenvolvimento de Jogos: ▫ PyGame, PyOpenGL Onde / quando usar python
• Área Científica: Scipy, NumPy; • Aplicações Geo: Mapproxy (com Postgis); • Inteligência Artificial; • Animações 3D (Blender); • Aplicativos Móveis ; Onde / quando usar python
Python – Quem usa?
Python – Quem Usa
Python – Quem Usa
Python – site www.python.org
Python – site: www.python.org.br
Psycopg / Psycopg2
• É o mais popular adaptador Python para PostgreSQL; • Oferece acesso a praticamente todos os recursos do PostgreSQL; • Liberado sob os termos LGPL; • Atualmente na versão 2.5.1; • Multiplataforma; • Instalação: ▫ Windows: Binário; ▫ Linux / Mac: Pacote; Psycopg2
• Escrito a maior parte em C; • Faz uso da libpq (objetivando melhor desempenho e segurança); • Suporte a todas as versões do Python atuais; • Suporte a todas as versões do PostgreSQL (acima da 7); • Implementação totalmente compatível com as especificações de adaptadores de Bancos de Dados Python; • Thread-safe: as threads podem compartilhar a mesma conexão ou usar conexões diferentes; • Possui adaptação de diversos tipos de dados python; Psycopg2
• Possui typecasters que convertem tipos do PostgreSQL para objetos python; • Possui cursores Server-Side; • Suporte ao comando COPY; • Pode enviar e receber notificações assíncronas; • Suporta commit em duas fases; • Permite a conversão de tipos decimal / numeric (PostgreSQL) para tipos float ou Decimal (Python); Psycopg2
• Conectando a uma base de dados Psycopg2 – Alguns Exemplos • Desconectando de uma base de dados
• Criando uma tabela e inserindo dados Psycopg2 – Alguns Exemplos
• Alterando e excluindo registros de uma tabela Psycopg2 – Alguns Exemplos
• Conversão de tipo automática e setar o encoding no cliente: Psycopg2 – Alguns Exemplos
• Framework Web; • Criado por Adrian Holovaty em 2005; • Inicialmente seria apenas um gerenciador de notícias; • Licença BSD; • Nome inspirado no músico de jazz Django Reinhardt • Escrito em Python • Utiliza padrão MVC • Conceito DRY Django
• Possui ORM próprio; ▫ Acesso a diversos bancos;  PostgreSQL;  MySQL;  Oracle;  DB2;  SQLServer; ▫ Permite multi-bancos; ▫ Permite herança; ▫ Classes Abstratas Django - Recursos
• Possui ORM próprio; ▫ Chaves estrangeiras; ▫ Relações Many-To-Many; ▫ Indicação de índices únicos; ▫ Indicação de chaves primárias; ▫ Trabalha com arquivos; ▫ Permite métodos adicionais; Django - Recursos
• Possui Sistema próprio de Templates ▫ Permite herança de templates; ▫ Permite condicionais: if; ▫ Permite iterações: for; ▫ Possui filtros especiais; ▫ Proteção contra tags especiais (html); ▫ Possui formatação de data; ▫ Internacionalização; ▫ Cache; Django - Recursos
• Interface Administrativa muito poderosa e flexível; ▫ Permite o cadastro de usuários e grupos (especificando o acesso); ▫ Permite a criação de listagens com busca, filtros (inclusive por data) e sintaxes adicionais; Django - Recursos
• Integração com o PostGis (inclusive na Interface Administrativa); ▫ GeoDjango, MapProxy e Leaflet; Django - Recursos
• Interface Administrativa ▫ CRUD Básico /Intermediário; ▫ Personalização de templates; ▫ Adição de recursos; ▫ Gerar modelos mestre-detalhe; ▫ Geração de Novos Widgets; ▫ Adição de Rotinas e Módulos (grapelly, django-admin-shortcut); ▫ Geração de ações e sistemas rápidos; Django - Recursos
• Internacionalização; • Cache por página, view ou consulta ; ▫ Memcached; ▫ Memória; ▫ Arquivos; • Flatpages; • Feeds; • Coleta de Arquivos Estáticos; • Envio de Email; • Validação de URL’s de Recuperação de Email; Django – Outros Recursos
• Geração de Log’s; • Aplicações Plugáveis; • 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
Tudo muito legal mas.... E o PostgreSQL com isso??
• Conector python compatível com a maioria dos recursos do PostgreSQL; • Conexão nativa / homologada com o ORM do Django; • Possibilidade de execução segura de transações (incluindo em duas fases); • Proteção contra SQL Injection; • Proteção contra CSRF; • Proteção contra XSS; Eis a razão....
• Conversão precisa e automática entre tipos do PostgreSQL para os tipos do Python e vice-versa; • Uso de Tablespaces; • Uso de schemas (com aplicações plugáveis); • Ampla documentação; • Facilidade no Deploy; • Simplicidade no Desenvolvimento; Um pouco mais...
• Excelente desempenho; • Geração de migrations; • Geração de modelos a partir de bancos legados; • Integração nativa com o Postgis; • Interface administrativa com diversas funções; • Integração da interface administrativa com o postgis; • Soluções de suporte e complemento ao postgis (MapProxy, Mapnik); • Ambiente Livre; • Integração com Jquery, bootstrap, angularJS, Hightcarts; E ainda mais...
• Cardápio RU (UFAC); • Plano de Metas – 100 dias (UFAC); Onde foi utilizado – Aplicações Pequenas
• Sistema de Busca de Documentos – Finder – (UFAC); • Sistema de Pedidos - www.youtube.com/watch?v=emUXmvlGP0E • Sistema Simulador de Financiamentos Imobiliários - CET • Sistema de Protocolo – Ufac (Integração com DB2); • SUAP – Usado por Institutos Federais (des. IFRN) Onde foi utilizado – Aplicações Pequenas
• Sistema de Gestão Imobiliária – Cohab Acre; • aQui Alli – Sistema Gerador de HotSites e catálogo online; • Sistema de Registro de Projetos – UFAC; • Sistema de Gestão de Processos Seletivos (gestão de 250 mil candidatos registrados) – UFAC • Sistema de Gestão Escolar – Ensino Médio – CAp/UFAC • Diversos sites: http://www.djangosites.org/ Onde foi utilizado – Aplicações de Médio Porte
Obrigado! Dúvidas?? Marcos Thomaz marcosthomazs@gmail.com

Postgre sql +python

  • 1.
    Marcos Thomaz daSilva PostgreSQL +Python/Django – Uma Parceria de Sucesso
  • 2.
    • Graduação emSistemas de Informação • Especialização em Bancos de Dados • Analista de Tecnologia da Informação da Universidade Federal do Acre • Desenvolvedor Clipper, Delphi, PHP e Python • Participante e Moderador da Lista Django Brasil; • Entusiasta PostgreSQL Perfil do Instrutor
  • 4.
    • Criada porGuido van Rossun no Instituto de Pesquisa Nacional para Matemática e Ciência da Computação de Amsterdam; • Nome originado da série britânica Monty Python Flying Circus; • Lançada em 1991; • Linguagem de alto nível; • Interpretada; • Gera bytecodes (pyc, pyo); Python
  • 5.
  • 6.
    Python • Endentação comodelimitador de blocos;
  • 7.
    • Possui InterpretadorInterativo; Python
  • 8.
    • Tipagem dinâmicae forte; Python
  • 9.
    • Orientada aObjetos; ▫ Herança (inclusive herança múltipla); ▫ Polimorfismo; ▫ Suporte a metaclasse; • Tratamento de Exceções; • Trabalha nativamente com tipos “primitivos” e estruturas complexas (listas, dicionários, tuplas); • Introspecção (Reflection); Python
  • 10.
  • 11.
    • Sobrecarga deoperadores; Python
  • 13.
    • Jython • CPython •IronPython • PyPy • PyObjC (Mac OSX middleware) • Python for Delphi • Brython Python - Interoperabilidade
  • 14.
    • Geração descripts; ▫ 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; ▫ Existência de diversos frameworks: Django, Pyramid, Web2Py; • Ferramenta de Gerenciamento de Conteúdo (Plone); Onde / quando usar python
  • 15.
    • Desenvolvimento Desktop; ▫Uso de GTK, QT, wxWindow, etc; • Diversos Editores de Código; ▫ Pagos: Pycharm, Sublime Text, Komodo, WingIDE, Ninja IDE; ▫ Livres: PyDev (Eclipse), Eric, Pida, Boa-Constructor, Notepad++, Vim; • Desenvolvimento de ERP’s: ▫ OpenERP, Stoq; • Desenvolvimento de Jogos: ▫ PyGame, PyOpenGL Onde / quando usar python
  • 16.
    • Área Científica:Scipy, NumPy; • Aplicações Geo: Mapproxy (com Postgis); • Inteligência Artificial; • Animações 3D (Blender); • Aplicativos Móveis ; Onde / quando usar python
  • 17.
  • 18.
  • 19.
  • 20.
    Python – sitewww.python.org
  • 21.
    Python – site:www.python.org.br
  • 22.
  • 23.
    • É omais popular adaptador Python para PostgreSQL; • Oferece acesso a praticamente todos os recursos do PostgreSQL; • Liberado sob os termos LGPL; • Atualmente na versão 2.5.1; • Multiplataforma; • Instalação: ▫ Windows: Binário; ▫ Linux / Mac: Pacote; Psycopg2
  • 24.
    • Escrito amaior parte em C; • Faz uso da libpq (objetivando melhor desempenho e segurança); • Suporte a todas as versões do Python atuais; • Suporte a todas as versões do PostgreSQL (acima da 7); • Implementação totalmente compatível com as especificações de adaptadores de Bancos de Dados Python; • Thread-safe: as threads podem compartilhar a mesma conexão ou usar conexões diferentes; • Possui adaptação de diversos tipos de dados python; Psycopg2
  • 25.
    • Possui typecastersque convertem tipos do PostgreSQL para objetos python; • Possui cursores Server-Side; • Suporte ao comando COPY; • Pode enviar e receber notificações assíncronas; • Suporta commit em duas fases; • Permite a conversão de tipos decimal / numeric (PostgreSQL) para tipos float ou Decimal (Python); Psycopg2
  • 26.
    • Conectando auma base de dados Psycopg2 – Alguns Exemplos • Desconectando de uma base de dados
  • 27.
    • Criando umatabela e inserindo dados Psycopg2 – Alguns Exemplos
  • 28.
    • Alterando eexcluindo registros de uma tabela Psycopg2 – Alguns Exemplos
  • 29.
    • Conversão detipo automática e setar o encoding no cliente: Psycopg2 – Alguns Exemplos
  • 31.
    • Framework Web; •Criado por Adrian Holovaty em 2005; • Inicialmente seria apenas um gerenciador de notícias; • Licença BSD; • Nome inspirado no músico de jazz Django Reinhardt • Escrito em Python • Utiliza padrão MVC • Conceito DRY Django
  • 32.
    • Possui ORMpróprio; ▫ Acesso a diversos bancos;  PostgreSQL;  MySQL;  Oracle;  DB2;  SQLServer; ▫ Permite multi-bancos; ▫ Permite herança; ▫ Classes Abstratas Django - Recursos
  • 33.
    • Possui ORMpróprio; ▫ Chaves estrangeiras; ▫ Relações Many-To-Many; ▫ Indicação de índices únicos; ▫ Indicação de chaves primárias; ▫ Trabalha com arquivos; ▫ Permite métodos adicionais; Django - Recursos
  • 34.
    • Possui Sistemapróprio de Templates ▫ Permite herança de templates; ▫ Permite condicionais: if; ▫ Permite iterações: for; ▫ Possui filtros especiais; ▫ Proteção contra tags especiais (html); ▫ Possui formatação de data; ▫ Internacionalização; ▫ Cache; Django - Recursos
  • 35.
    • Interface Administrativamuito poderosa e flexível; ▫ Permite o cadastro de usuários e grupos (especificando o acesso); ▫ Permite a criação de listagens com busca, filtros (inclusive por data) e sintaxes adicionais; Django - Recursos
  • 36.
    • Integração como PostGis (inclusive na Interface Administrativa); ▫ GeoDjango, MapProxy e Leaflet; Django - Recursos
  • 37.
    • Interface Administrativa ▫CRUD Básico /Intermediário; ▫ Personalização de templates; ▫ Adição de recursos; ▫ Gerar modelos mestre-detalhe; ▫ Geração de Novos Widgets; ▫ Adição de Rotinas e Módulos (grapelly, django-admin-shortcut); ▫ Geração de ações e sistemas rápidos; Django - Recursos
  • 38.
    • Internacionalização; • Cachepor página, view ou consulta ; ▫ Memcached; ▫ Memória; ▫ Arquivos; • Flatpages; • Feeds; • Coleta de Arquivos Estáticos; • Envio de Email; • Validação de URL’s de Recuperação de Email; Django – Outros Recursos
  • 39.
    • Geração deLog’s; • Aplicações Plugáveis; • 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
  • 40.
    Tudo muito legalmas.... E o PostgreSQL com isso??
  • 41.
    • Conector pythoncompatível com a maioria dos recursos do PostgreSQL; • Conexão nativa / homologada com o ORM do Django; • Possibilidade de execução segura de transações (incluindo em duas fases); • Proteção contra SQL Injection; • Proteção contra CSRF; • Proteção contra XSS; Eis a razão....
  • 42.
    • Conversão precisae automática entre tipos do PostgreSQL para os tipos do Python e vice-versa; • Uso de Tablespaces; • Uso de schemas (com aplicações plugáveis); • Ampla documentação; • Facilidade no Deploy; • Simplicidade no Desenvolvimento; Um pouco mais...
  • 43.
    • Excelente desempenho; •Geração de migrations; • Geração de modelos a partir de bancos legados; • Integração nativa com o Postgis; • Interface administrativa com diversas funções; • Integração da interface administrativa com o postgis; • Soluções de suporte e complemento ao postgis (MapProxy, Mapnik); • Ambiente Livre; • Integração com Jquery, bootstrap, angularJS, Hightcarts; E ainda mais...
  • 44.
    • Cardápio RU(UFAC); • Plano de Metas – 100 dias (UFAC); Onde foi utilizado – Aplicações Pequenas
  • 45.
    • Sistema deBusca de Documentos – Finder – (UFAC); • Sistema de Pedidos - www.youtube.com/watch?v=emUXmvlGP0E • Sistema Simulador de Financiamentos Imobiliários - CET • Sistema de Protocolo – Ufac (Integração com DB2); • SUAP – Usado por Institutos Federais (des. IFRN) Onde foi utilizado – Aplicações Pequenas
  • 46.
    • Sistema deGestão Imobiliária – Cohab Acre; • aQui Alli – Sistema Gerador de HotSites e catálogo online; • Sistema de Registro de Projetos – UFAC; • Sistema de Gestão de Processos Seletivos (gestão de 250 mil candidatos registrados) – UFAC • Sistema de Gestão Escolar – Ensino Médio – CAp/UFAC • Diversos sites: http://www.djangosites.org/ Onde foi utilizado – Aplicações de Médio Porte
  • 47.