SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

PL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLPL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLJuliano Atanazio
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Postgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CPostgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CRibamar Sousa
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.comricobl
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonFabio Spanhol
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetosFrancisco Santos
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando PythonHelio Loureiro
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
 

Mais procurados (20)

Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
PL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQLPL/Python: Programando em Python no PostgreSQL
PL/Python: Programando em Python no PostgreSQL
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
Palestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas AplicaçõesPalestra Apresentando Python e Suas Aplicações
Palestra Apresentando Python e Suas Aplicações
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Introdução à linguagem python
Introdução à linguagem pythonIntrodução à linguagem python
Introdução à linguagem python
 
Postgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F CPostgre S Q L Apresentacao U F C
Postgre S Q L Apresentacao U F C
 
Python e Django na Globo.com
Python e Django na Globo.comPython e Django na Globo.com
Python e Django na Globo.com
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
40 php orientado a objetos
40 php orientado a objetos40 php orientado a objetos
40 php orientado a objetos
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 
Administração de sistemas usando Python
Administração de sistemas usando PythonAdministração de sistemas usando Python
Administração de sistemas usando Python
 
Python, CPython, Pythonico, Cython
Python, CPython, Pythonico, CythonPython, CPython, Pythonico, Cython
Python, CPython, Pythonico, Cython
 
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e PythonMinicurso de Django - Desenvolvimento ágil web com Django e Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 

Destaque

Cp r75 firewall_admin_guide
Cp r75 firewall_admin_guideCp r75 firewall_admin_guide
Cp r75 firewall_admin_guideAnh Thảo
 
Fundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisFundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisÁlvaro Farias Pinheiro
 
Presentation cisco iron port e-mail security solution
Presentation   cisco iron port e-mail security solutionPresentation   cisco iron port e-mail security solution
Presentation cisco iron port e-mail security solutionxKinAnx
 
Instalación Firewall Checkpoint R70
Instalación Firewall Checkpoint R70Instalación Firewall Checkpoint R70
Instalación Firewall Checkpoint R70symple9
 
Web Security Deployment
Web Security DeploymentWeb Security Deployment
Web Security DeploymentCisco Canada
 
Presentation cisco iron port email & web security
Presentation   cisco iron port email & web securityPresentation   cisco iron port email & web security
Presentation cisco iron port email & web securityxKinAnx
 
Check point presentation june 2014
Check point presentation june 2014Check point presentation june 2014
Check point presentation june 2014David Berkelmans
 
Checkpoint Firewall for Dummies
Checkpoint Firewall for Dummies Checkpoint Firewall for Dummies
Checkpoint Firewall for Dummies sushmil123
 
Cisco Web and Email Security Overview
Cisco Web and Email Security OverviewCisco Web and Email Security Overview
Cisco Web and Email Security OverviewCisco Security
 
Cisco Ironport WSA- Introduction and Guide in Short
Cisco Ironport WSA-  Introduction and Guide in ShortCisco Ironport WSA-  Introduction and Guide in Short
Cisco Ironport WSA- Introduction and Guide in ShortPriyank Sharma
 

Destaque (18)

Cp r75 firewall_admin_guide
Cp r75 firewall_admin_guideCp r75 firewall_admin_guide
Cp r75 firewall_admin_guide
 
Fundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados RelacionaisFundamentos de Banco de Dados Relacionais
Fundamentos de Banco de Dados Relacionais
 
Presentation cisco iron port e-mail security solution
Presentation   cisco iron port e-mail security solutionPresentation   cisco iron port e-mail security solution
Presentation cisco iron port e-mail security solution
 
Instalación Firewall Checkpoint R70
Instalación Firewall Checkpoint R70Instalación Firewall Checkpoint R70
Instalación Firewall Checkpoint R70
 
Check Point designing a security
Check Point designing a securityCheck Point designing a security
Check Point designing a security
 
Check Point sizing security
Check Point sizing securityCheck Point sizing security
Check Point sizing security
 
Check Point Virtual Systems
Check Point Virtual SystemsCheck Point Virtual Systems
Check Point Virtual Systems
 
Web Security Deployment
Web Security DeploymentWeb Security Deployment
Web Security Deployment
 
Presentation cisco iron port email & web security
Presentation   cisco iron port email & web securityPresentation   cisco iron port email & web security
Presentation cisco iron port email & web security
 
Checkpoint r77
Checkpoint r77Checkpoint r77
Checkpoint r77
 
Check point presentation june 2014
Check point presentation june 2014Check point presentation june 2014
Check point presentation june 2014
 
IronPort
IronPortIronPort
IronPort
 
Check Point NGFW
Check Point NGFWCheck Point NGFW
Check Point NGFW
 
checkpoint
checkpointcheckpoint
checkpoint
 
Checkpoint Firewall for Dummies
Checkpoint Firewall for Dummies Checkpoint Firewall for Dummies
Checkpoint Firewall for Dummies
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Cisco Web and Email Security Overview
Cisco Web and Email Security OverviewCisco Web and Email Security Overview
Cisco Web and Email Security Overview
 
Cisco Ironport WSA- Introduction and Guide in Short
Cisco Ironport WSA-  Introduction and Guide in ShortCisco Ironport WSA-  Introduction and Guide in Short
Cisco Ironport WSA- Introduction and Guide in Short
 

Semelhante a Postgre sql +python

Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCETiago Freire
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonPaula Grangeiro
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonGrupo de Testes Carioca
 
Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...iMasters
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
Usando Python na Google App Engine
Usando Python na Google App EngineUsando Python na Google App Engine
Usando Python na Google App EngineLuiz Cláudio Silva
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesjoanio trade
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e TkCarlos Campani
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3IP10
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonIP10
 
Trabalho Remoto - Remote Job - #devitz2013
Trabalho Remoto - Remote Job - #devitz2013Trabalho Remoto - Remote Job - #devitz2013
Trabalho Remoto - Remote Job - #devitz2013Herson Leite
 
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDBVinicius de Sá
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeAécio Pires
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxImpacta Eventos
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxyFernando Ike
 

Semelhante a Postgre sql +python (20)

Canivete python
Canivete pythonCanivete python
Canivete python
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Por Que Python - #PUGCE
Por Que Python - #PUGCEPor Que Python - #PUGCE
Por Que Python - #PUGCE
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Django - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em pythonDjango - A sua cápsula de soluções web em python
Django - A sua cápsula de soluções web em python
 
Junho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em pythonJunho 2016 - Django - A sua cápsula de soluções web em python
Junho 2016 - Django - A sua cápsula de soluções web em python
 
Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...Android DevConference - Elastic Search como ferramenta de busca em aplicações...
Android DevConference - Elastic Search como ferramenta de busca em aplicações...
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
Usando Python na Google App Engine
Usando Python na Google App EngineUsando Python na Google App Engine
Usando Python na Google App Engine
 
PostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandesPostgreSql - Um banco de dados Open Source que figura entre os grandes
PostgreSql - Um banco de dados Open Source que figura entre os grandes
 
Introdução à Programação Python e Tk
Introdução à Programação Python e TkIntrodução à Programação Python e Tk
Introdução à Programação Python e Tk
 
Congresso iii unifacsv3
Congresso iii unifacsv3Congresso iii unifacsv3
Congresso iii unifacsv3
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do Python
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Trabalho Remoto - Remote Job - #devitz2013
Trabalho Remoto - Remote Job - #devitz2013Trabalho Remoto - Remote Job - #devitz2013
Trabalho Remoto - Remote Job - #devitz2013
 
Geo dev ops
Geo dev opsGeo dev ops
Geo dev ops
 
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
[LatinoWare 2012] Mini Curso PHP 5.4 + MongoDB
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as code
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Skytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxySkytools, pgbouncer e plproxy
Skytools, pgbouncer e plproxy
 

Mais de Marcos Thomaz

Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...Marcos Thomaz
 
Hydros - Apresentação para Investidores
Hydros - Apresentação para InvestidoresHydros - Apresentação para Investidores
Hydros - Apresentação para InvestidoresMarcos Thomaz
 
Minimax e corte alfa beta
Minimax e corte alfa betaMinimax e corte alfa beta
Minimax e corte alfa betaMarcos Thomaz
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento Marcos Thomaz
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do bancoMarcos Thomaz
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
 

Mais de Marcos Thomaz (8)

Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
Hibridização de Métodos Exatos e Heurísticos para a Minimização do Atraso Pon...
 
Hydros - Apresentação para Investidores
Hydros - Apresentação para InvestidoresHydros - Apresentação para Investidores
Hydros - Apresentação para Investidores
 
Minimax e corte alfa beta
Minimax e corte alfa betaMinimax e corte alfa beta
Minimax e corte alfa beta
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento MongoDB: Uma forma diferente de pensar no desenvolvimento
MongoDB: Uma forma diferente de pensar no desenvolvimento
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do banco
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQL
 
Postgresql +python
Postgresql +pythonPostgresql +python
Postgresql +python
 

Postgre sql +python

  • 1. Marcos Thomaz da Silva PostgreSQL +Python/Django – Uma Parceria de Sucesso
  • 2. • 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
  • 3.
  • 4. • 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
  • 6. Python • Endentação como delimitador de blocos;
  • 7. • Possui Interpretador Interativo; Python
  • 8. • Tipagem dinâmica e forte; Python
  • 9. • 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
  • 11. • Sobrecarga de operadores; Python
  • 12.
  • 13. • Jython • CPython • IronPython • PyPy • PyObjC (Mac OSX middleware) • Python for Delphi • Brython Python - Interoperabilidade
  • 14. • 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
  • 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
  • 20. Python – site www.python.org
  • 21. Python – site: www.python.org.br
  • 23. • É 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
  • 24. • 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
  • 25. • 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
  • 26. • Conectando a uma base de dados Psycopg2 – Alguns Exemplos • Desconectando de uma base de dados
  • 27. • Criando uma tabela e inserindo dados Psycopg2 – Alguns Exemplos
  • 28. • Alterando e excluindo registros de uma tabela Psycopg2 – Alguns Exemplos
  • 29. • Conversão de tipo automática e setar o encoding no cliente: Psycopg2 – Alguns Exemplos
  • 30.
  • 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 ORM próprio; ▫ Acesso a diversos bancos;  PostgreSQL;  MySQL;  Oracle;  DB2;  SQLServer; ▫ Permite multi-bancos; ▫ Permite herança; ▫ Classes Abstratas Django - Recursos
  • 33. • 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
  • 34. • 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
  • 35. • 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
  • 36. • Integração com o 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; • 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
  • 39. • 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
  • 40. Tudo muito legal mas.... E o PostgreSQL com isso??
  • 41. • 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....
  • 42. • 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...
  • 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 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
  • 46. • 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