Este documento discute como Python está mudando o desenvolvimento para a internet. Brevemente, ele descreve como frameworks Python fornecem alto nível de abstração, mapeamento objeto-relacional e sistemas de templates para permitir o desenvolvimento rápido de aplicações web. O documento também discute alguns frameworks Python populares como Django, Pylons e TurboGears.
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
1. Python mudando o modo de
desenvolver para a internet
Marcos Daniel Petry
2. Quem sou eu?
• Marcos Daniel Petry =)
• Bacharel em Ciências da Computação
• Desenvolvedor Python desde 2005
• Já programei em Delphi, VB, PHP, Java ...
3. Quem está aí?
• Desenvolvedores?
• Conhecem python?
• Trabalham com python?
4. Há muito tempo atrás...
• Não havia um estrutura determinada
• Poucos padrões
• O objetivo era muito diferente do que é hoje
• Necessidade de algo melhor...
5.
6. Iniciada a evolução...
• Não é necessário escrever todo html "no braço"
• O servidor Web Recebe a requisição
• Executa o código CGI e devolve a informação processada
• Possibilidade de usar C, Perl, TCL....
7. A era PHP e ASP
• Inicio da divisão de culturas
– Software proprietário x Software livre
– "guerra de linguagens"
• O mesmo objetivo de CGI, mas com uma melhor
tecnologia e mais fácil de entender
• Os sites são orientados a páginas
• Várias iniciativas de integrar outras linguagens
com o servidor Web
14. Mas por que Python?
• Criada para ser explícita e de fácil aprendizado
• Orientada a Objetos, mas multi-paradigma
• Multi-plataforma
• Software Livre
• Compilada, interpretada e interativa
• Muitas bibliotecas
• Curva de aprendizado curta
• Divertida!
15. Segurança
700 • Por Linguagem:
600 • Python: 82
500 • PHP: 11899
400
300
200
100
0
Joomla Drupal Zend Cake Zope Plone Django
Dados da National Vulnerability Database, em 18/06/2010
http://web.nvd.nist.gov/view/vuln/search
17. O que é necessário para um Framework
WEB?
• Alto nível
• Orientado a aplicações
• Que respeite um paradigma de projeto
• Desenvolvimento rápido
• Open Source =)
18. Como conseguimos isso?
• Mapemento objeto-relacional
• Mapeador de URL
• Sistema de Templates
• Ferramentas auxiliares
– Formulários e Validação
– Autenticação
– Controle de sessões
– Administração
20. Mapeamento Objeto-Relacional
• Escrever SQL é descecessário na maioria dos casos
• Independência de Banco de Dados
• Existem vários, independente do framework
escolhido
– SQL Objetct
– Alchemy
– Mongo-Engine
– Divan
24. Mapeador de Endereços
• Mantém a estrutura do seu site controlada
– Mais segurança
• Mais fácil de debugar em caso de erro no site
• Endereços fáceis de entender
32. Pylons
• "Full Stack", extremamente flexivel
• Reúsa vários componenetes já existentes
• A substituiçã ode componentes é muito fácil
33. Turbo Gears
• Full stack, mas também com reúso de
componentes
• Turbo Gears roda em cima do Pylons
34. Django
• O mais popular no mundo Python
• Não reusa nada
• Prioriza a integração interna de componentes
• Quebra o projeto em aplicações
• Facilita muito o reúso, já que há várias apps
disponibilizadas
• Eu uso ele! =)