O documento discute o uso da linguagem Python e do framework Django para desenvolvimento web, com foco na integração com o banco de dados PostgreSQL. Apresenta as principais características e aplicações de Python, Django e Psycopg, o adaptador Python para PostgreSQL, demonstrando como essa combinação permite o desenvolvimento de aplicações web robustas e escaláveis.
Uma breve apresentação sobre este fantástico Sistema Gerenciador de Banco de Dados Objeto-Relacional.
Razões para adotá-lo, curiosidades e características.
Antes era uma extensão do Postgres, incorporada ao core desde a versão 8.3, FTS (Full Text Search) é um recurso que agiliza e dá maior precisão em buscas textuais. Nesta apresentação serão mostradas de forma resumida, formas e exemplos de aplicação deste recurso.
Palestra ministrada no evento FTSL 2015.
Uma coleção de várias dicas e recomendações para um projeto de banco de dados bem consolidado e com boa performance, além de abandonar maus costumes.
Evento: FTSL 2015
Data: 18/09/2015,
Local: Universidade Tecnológica Federal do Paraná (UTFPR), Curitiba - PR
http://ftsl.org.br/
Python é uma linguagem de programação de altíssimo nível.
Fácil de aprender, fácil de dar manutenção, direta e objetiva.
Escreva menos pra se fazer mais :D
Material de evangelização ;)
Django é um framework para desenvolvimento rápido para web, escrito em Python.
Utiliza o padrão MTV (model - template - view).
Principais caracteristicas:
Mapeamento Objeto-Relacional (ORM)
Define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizarSQL (o que também é possivel).
Interface Administrativa
No Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM.
Formulários
É possível gerar formulários automaticamente através dos modelos de dados.
URLs Elegantes
No Django não há limitações para criação de URLs elegantes e de maneira simples.
- Nada elegante, difícil para o usário e ruim para buscadores: www.meusite.com.br/index.jsp?id=12&nome=ciclano
- Elegante, fácil leitura e memorização e ótimo para buscadores:
www.meusite.com.br/12/ciclano
Sistema de Templates
O Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python.
Internacionalização
Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
Sistema de Cache
O Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache.
Sobre Python
O que é Python?
Python é uma linguagem de altíssimo nível (VHLL - Very High Level Language) com código fonte aberto.
Python é Interpretado ou compilado?
Python é executado de forma interpretada via bytecode, ou seja, escrevendo apenas uma vez o código Python podemos executá-lo em qualquer sistema operaciona
Uma breve apresentação sobre este fantástico Sistema Gerenciador de Banco de Dados Objeto-Relacional.
Razões para adotá-lo, curiosidades e características.
Antes era uma extensão do Postgres, incorporada ao core desde a versão 8.3, FTS (Full Text Search) é um recurso que agiliza e dá maior precisão em buscas textuais. Nesta apresentação serão mostradas de forma resumida, formas e exemplos de aplicação deste recurso.
Palestra ministrada no evento FTSL 2015.
Uma coleção de várias dicas e recomendações para um projeto de banco de dados bem consolidado e com boa performance, além de abandonar maus costumes.
Evento: FTSL 2015
Data: 18/09/2015,
Local: Universidade Tecnológica Federal do Paraná (UTFPR), Curitiba - PR
http://ftsl.org.br/
Python é uma linguagem de programação de altíssimo nível.
Fácil de aprender, fácil de dar manutenção, direta e objetiva.
Escreva menos pra se fazer mais :D
Material de evangelização ;)
Django é um framework para desenvolvimento rápido para web, escrito em Python.
Utiliza o padrão MTV (model - template - view).
Principais caracteristicas:
Mapeamento Objeto-Relacional (ORM)
Define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizarSQL (o que também é possivel).
Interface Administrativa
No Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM.
Formulários
É possível gerar formulários automaticamente através dos modelos de dados.
URLs Elegantes
No Django não há limitações para criação de URLs elegantes e de maneira simples.
- Nada elegante, difícil para o usário e ruim para buscadores: www.meusite.com.br/index.jsp?id=12&nome=ciclano
- Elegante, fácil leitura e memorização e ótimo para buscadores:
www.meusite.com.br/12/ciclano
Sistema de Templates
O Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python.
Internacionalização
Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
Sistema de Cache
O Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache.
Sobre Python
O que é Python?
Python é uma linguagem de altíssimo nível (VHLL - Very High Level Language) com código fonte aberto.
Python é Interpretado ou compilado?
Python é executado de forma interpretada via bytecode, ou seja, escrevendo apenas uma vez o código Python podemos executá-lo em qualquer sistema operaciona
Apresentação da Palestra sobre o Framework Django, utilizado no desenvolvimento de sites e aplicações web. Na apresentação são mostrados os recursos do Django, citando seu ORM, acesso a bancos de dados, templates, cache, views, urls e diversos outros recursos.
PL/Python é a implementação de Python como linguagem procedural no PostgreSQL.
Permite utilizar todas as bibliotecas de Python instaladas no sistema operacional.
PL/Python proporciona uma gama de possibilidades de recursos maior ao banco de dados graças às bibliotecas Python que permite fazer operações que transcendem os limites da base de dados.
Pode-se por exemplo com uma função PL/Python fazer raspagem de dados e jogá-los diretamente no banco (e pelo banco).
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
Apresentação utilizada na palestra realizada no dia 08/10/2014 na faculdade Meta, contendo uma introdução sobre a linguagem de programação Python, suas aplicações, empresas que utilizam e exemplos de uso aplicado a algumas situações, mostrando o potencial desta linguagem, que vai desde o acesso a bancos de dados, geração de sites, aplicações desktop e web multiplataformas (windows, linux, freebsd, MacOS), web, mineração de dados, inteligência artificial, até o desenvolvimento de aplicações mobile (android, iOS).
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
Tutorial desde a instalação a aplicações práticas do pgbarman.
Apresentação feita originalmente como palestra no evento nacional de PostgreSQL (PgBr 2013.
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
Minicurso de Django 1.10 com a criação de um projeto completo em Django e conteúdos sobre:
Introdução a Python, Autenticação de usuários Django, Relacionamentos de classes do Django. Templates, etc.
Fundamentos sobre a Linguagem de Consulta Estruturada com os comandos nas suas categorias de Definição, Manipulação, Consulta, Transação e Controle de Dados nos bancos Oracle, SQLServer, Postgre, MySQL e Interbase/Firebird.
Apresentação da Palestra sobre o Framework Django, utilizado no desenvolvimento de sites e aplicações web. Na apresentação são mostrados os recursos do Django, citando seu ORM, acesso a bancos de dados, templates, cache, views, urls e diversos outros recursos.
PL/Python é a implementação de Python como linguagem procedural no PostgreSQL.
Permite utilizar todas as bibliotecas de Python instaladas no sistema operacional.
PL/Python proporciona uma gama de possibilidades de recursos maior ao banco de dados graças às bibliotecas Python que permite fazer operações que transcendem os limites da base de dados.
Pode-se por exemplo com uma função PL/Python fazer raspagem de dados e jogá-los diretamente no banco (e pelo banco).
Palestra Apresentando Python e Suas AplicaçõesMarcos Thomaz
Apresentação utilizada na palestra realizada no dia 08/10/2014 na faculdade Meta, contendo uma introdução sobre a linguagem de programação Python, suas aplicações, empresas que utilizam e exemplos de uso aplicado a algumas situações, mostrando o potencial desta linguagem, que vai desde o acesso a bancos de dados, geração de sites, aplicações desktop e web multiplataformas (windows, linux, freebsd, MacOS), web, mineração de dados, inteligência artificial, até o desenvolvimento de aplicações mobile (android, iOS).
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
Tutorial desde a instalação a aplicações práticas do pgbarman.
Apresentação feita originalmente como palestra no evento nacional de PostgreSQL (PgBr 2013.
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
Minicurso de Django 1.10 com a criação de um projeto completo em Django e conteúdos sobre:
Introdução a Python, Autenticação de usuários Django, Relacionamentos de classes do Django. Templates, etc.
Fundamentos sobre a Linguagem de Consulta Estruturada com os comandos nas suas categorias de Definição, Manipulação, Consulta, Transação e Controle de Dados nos bancos Oracle, SQLServer, Postgre, MySQL e Interbase/Firebird.
Instalación Firewall CHECKPOINT R70
A continuación se muestra el proceso de la instalación del firewall CHECKPOINT R70 y su configuración básica, Para poder instalarlo, se debe de tener el liveCD de CHECKPOINT incrustarlo en el CD-ROM y hacer que la computadora arranque desde el servidor.
Este software se instala de manera fácil como cualquier software el cual instala 4 aplicaciones , donde SmartDashBoard es la consola para la configuracion de politicas sobre el firewall.
Así tenemos configurado nuestro checkpoint, listo para instalarle politicas.
Listo para configurar las políticas de FirewallGRUPO #1REDES 2 – USAC – 2011PRIMER SEMESTRE"ESTO A SIDO LA INSTALACIÓN Y CONFIGURACIÓN DEL CHECKPOINT...”
This presentation provides an overview of web security, web security with Cisco Ironport, web security with Cisco Scansafe, and the road to hybrid security.
IronPort works as Proxy, URL Filtering, Anti-Virus & Anti Phishing.
IronPort protect enterprises against Internet threats. It was best
known for IronPort AntiSpam, the SenderBase email reputation
service, and email security appliances. These appliances ran a
modified FreeBSD kernel under the trademark AsyncOS.
Os videos com o curso completo podem ser encontrados em: https://osantana.me/curso-de-python-e-django
Tudo sobre Python, Django, carreira e empreendedorismo na minha newsletter quinzenal "O Melhor da Internet". ASSINE:
https://osantana.me/o-melhor-da-internet-newsletter/
The top two attack vectors for malware are email and web browsers. Watering-hole attacks conceal malware on member-based sites and phishing scams can target individuals with personal details. This PPT describes a different security approach to protect against these threats while achieving business growth, efficiency and lowered expenses. The presentation features Cisco Email, Web and Cloud Web Security and covers basic features, offers, benefits, newest features and product integrations. Watch the webinar: http://cs.co/9004BGqvy
Cisco Ironport WSA- Introduction and Guide in ShortPriyank Sharma
This is a presentation made by me for IRONPORT users, admins or new users who want to understand the terminology of Cisco IRONPORT and its usage. However this is not very elaborate but yes will give you a nice and clear understanding of IRONPORT.
Android DevConference - Elastic Search como ferramenta de busca em aplicações...iMasters
Thiago Barradas e Brunelli Cupello, MundiPagg, falam sobre Elastic Search como ferramenta de busca em aplicações Android no Android DevConference 2016. Saiba mais em:http://androidconference.com.br/
Configuração de ativos de rede utilizando a abordagem infrastructure as codeAécio Pires
O objetivo desta palestra é apresentar a abordagem Infrastructure as Code (IaC) aplicada a switches e roteadores, utilizando uma solução de software integrada denominada PipeConf.
O intuito do PipeConf é realizar a automação da configuração de ativos de rede, levando em consideração diferentes modelos e fabricantes.
Hydros - Apresentação para InvestidoresMarcos Thomaz
Apresentação da Empresa e Sistema Hydros, preparada para investidores, criada para o projeto Startup Acre, juntamente com a equipe do Sebrae e Transforma.
Apresentação do Algoritmo Minimax e Corte Alfa-Beta, apresentado na Disciplina de Inteligência Artificial, no Programa de Pós-Graduação em Computação da Universidade Federal do Amazonas.
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
Minicurso de PostgreSQL, ministrado durante o evento Erin2013, explicando a criação de bancos de dados, triggers, procedures, views e comentando um pouco sobre melhoria de desempenho. Tudo com exercícios de Fixação
MongoDB: Uma forma diferente de pensar no desenvolvimento Marcos Thomaz
Apresentação sobre MongoDB, seus recursos, exemplos de uso e um comparativo de performance. Apresenta modelos e comandos básicos, porém úteis, comparando-os com comandos de bancos de dados relacionais, trazendo um comparativo básico de desempenho.
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
Esta apresentação foi utilizada na palestra ministrada na Conferência Brasileira de PostgreSQL, realizada na cidade de Porto Velho - Rondônia - Brasil, em 2013. Ela apresenta uma forma simples de se manter o log das ações realizadas no banco de dados, mantendo um histórico de modificações.
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.
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
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
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
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