[ Esconder Barra Lateral ][ Exibir Barra Lateral ] [ | Início | Continuar >> ]
Desenvolvimento web com Python e web2py
Introdução
O que é web2py?

é um framework para desenvolvimento Web escrito em Python, software livre e gratuito, que tem como um de seus principais objetivos agilidade no desenvolvimento de aplicações Web seguras, baseadas em banco de dados.
O framework segue o modelo MVC (Model-View-Controller), que permite melhor organização do código; ele também é autocontido: tudo o que você precisa para desenvolver alguma aplicação está nele: basta baixar e descompactar para começar - nada de configurações!
Com o foco em deixar o desenvolvedor pensar apenas na aplicação em que está desenvolvendo, o web2py possui intregração com mais de 10 sistemas de banco de dados, e vários subssistemas, como: criação automática de formulários com validação automática, autenticação e autorização, gerador de códigos AJAX para melhor interação do usuário com a aplicação, upload seguro de arquivos, sistema de plugins, integração com vários padrões Web (XML, RSS etc.), dentre outros.
O web2py leva em consideração todas as questões referentes a segurança da aplicação web, e isso significa que o framework se preocupa em tratar as vulnerabilidades aplicando práticas bem estabelecidas como por exemplo validando formulários prevenindo injeção de código malicioso, efetuando o correto escape da saida HTML para prevenir ameaças como o cross-site scripting, renomeia os arquivos de upload utilizando hash seguro. O web2py automaticamente toma conta de questões de segurança.
- Segurança do web2py www.pythonsecurity.org/wiki/web2py/
O web2py possui uma camada de abstração de banco e dados (DAL) que gera dinâmicamente todo o código SQL. a classe DAL pode se conectar e lidar de forma transparente com os bancos de dados:
- SQLite
- MySQL
- PostgreSQL
- MSSQL
- FireBird
- Oracle
- IBM DB2
- Informix
- Ingres
- Google BigTable on Google App engine GAE
A partir da definição de um ou mais bancos de dados para uma aplicação o web2py gera uma interface administrativa básica para acesso aos dados, não necessitando o uso de ferramentas para executar tarefas CRUD. Em uma única aplicação o web2py pode se conectar com vários bancos de dados ao mesmo tempo, podendo facilmente integrar dados entre MySQL e Oracle por exemplo.
A aplicação de administração que acompanha a instalação padrão do framework, provê uma interface administrativa que oferece todos os recursos para o desenvolvimento web:
- Criação de novas aplicações
- Edição de códigos Python, HTML, JavaScript
- Upload de arquivos estáticos como imagens e pacotes compactados
- Gerenciamento de arquivo de recurso de linguagem
- Sistema de Tickets para acompanhamento do log de excessões geradas na aplicação
- Atualização automática do framework
- Interface para o sistema de controle de versões ( Mercurial )
O web2py pode ser executado com CPython ( a implementação padrão da linguagem Python implementada em C ) ou com Jython ( a implementação do Python escrita em Java), Funciona com quase todos os seus recursos na plataforma gratuita de hospedagem de aplicações do Google; o GAE ( Google App Engine ).
O web2py é Open Source sob a licença GPL2, mas as aplicações desenvolvidas com o web2py não estão sujeitas a este tipo de licenciamento, ou seja, você pode desenvolver suas aplicações web2py e licenciar da maneira que escolher, seja open source ou software comercial. O web2py oferece a possibilidade de compilar as aplicações em byte-code para distribuição com código fechado.
Uma outra caracteristíca do web2py, é o compromisso com a compatibilidade em versões futuras, e este compromisso tem sido mantido desde a primeira versão, isso significa que aplicações desenvolvidas em uma versão especifica do framework funcionarão em versões mais recentes sem que seja necessário nenhuma alteração de código.
Princípios
A linguagem Python tipicamente segue os seguintes princípios
- Não se repita ( DRY )
- Deve existir apenas uma maneira óbvia de para fazer algo
- Explícito é melhor do que implícito
O web2py procura seguir rigorosamente os dois primeiros princípios por forçar o desenvolvedor a utilizar boas práticas de engenharia de software, utilizando um bom padrão de projeto (MVC) e incentivando o reaproveitamento de código. O framework guia o desenvolvedor facilitando as tarefas mais comuns em desenvolvimento para web.
Diferente de outros frameworks, o web2py aplica parcialmente o terceiro princípio, com a intenção de prover o desenvolvimento ágil o framework efetua configurações, importa módulos e instância objetos globais como session,request,cache,T e tudo isso é feito automaticamente, tentando ao máximo evitar que o desenvolvedor tenha importar os mesmos módulos e instanciar os mesmos objetos no inicio de cada model ou controller.
Efetuando essas operações automaticamente o web2py evita problemas, e mantém o princípio de não se repetir e de que deve existir apenas uma maneira para se fazer algo.
Porém, se for desejo do desenvolvedor este comportamento pode ser alterado, e em qualquer cenário é possível importar módulos como em qualquer outra aplicação ou framework Python.
Esse treinamento visa introduzir os alunos ao desenvolvimento Web com Python utilizando o web2py como ferramenta, mostrando todas as vantagens de se utilizar um framework. E os pré requisitos são onhecimentos básicos de HTML, CSS e lógica de programação em qualquer linguagem.
