Arquivo de etiquetas: python

Introdução ao Web2py Parte 2

Neste artigo, vou aprofundar um pouco mais a framework web2py, na sua aplicação mais prática, uma vez que se trata de um artigo de continuidade do anterior onde abordei a instalação da framework tanto em ambiente Windows como em ambiente GNU/Linux, e a construção de uma primeira aplicação com acesso a base de dados, utilizando a DAL fornecida pelo web2py.

Uma vez que estamos a falar num artigo de continuação, vou tentar debruçar-me mais sobre a construção de aplicações em web2py e menos sobre alguns aspectos da linguagem.

A framework web2py tem como base a linguagem Python no desenvolvimento dos models, controllers, views, embora utilize uma sintaxe de Python ligeiramente modificada nas views de forma a tornar o código mais legível, sem impor quaisquer restrições sobre o uso correcto Python.

O propósito das views é “embutir” código Python, em documentos HTML. Esta tarefa por norma é bastante árdua e complexa, além de apresentar problemas complexos de implementação

Introdução ao Web2py

Introdução

A linguagem Python foi inicialmente introduzida em 1989 como uma linguagem de propósito geral (general-purpose) de alto-nível, bastante legível (há quem a considere pseudocódigo executável). À linguagem foi sendo adicionado suporte para diversos paradigmas de programação, nomeadamente o paradigma de imperativo, o funcional e mais tarde o paradigma de programação orientada a objectos. Foi ainda complementada com a introdução de ferramentas de terceiros que a tornaram numa linguagem ainda mais robusta, mas isto já sai fora daquilo que vos trago neste artigo.

Voltando ao tema do artigo, o web2py é uma framework web, livre (open-source), destinada ao desenvolvimento de aplicações segundo a metodologia Agile. Tem como principal objectivo o desenvolvimento de aplicações web seguras e “orientadas” pelas bases de dados. Foi escrita em Python e é programável em Python. É uma framework (full-stack), ou seja, contém todos os componentes necessários para construirmos aplicações web totalmente funcionais, e foi projectado para orientar o web-developer de forma a que acompanhe as boas práticas de engenharia de software, como a utilização do modelo MVC (Model View Controller), separa a representação de dados (o model) da apresentação dos mesmos (a view) e estes dois da lógica e aplicação (o controller).

Programação funcional em Python

O paradigma funcional é um paradigma que trata a computação como uma sequência de funções e não como uma sequência de acções que mudam o estado do programa. Neste paradigma não há dados mutáveis, tudo é constante: se x é definido como sendo 3, x nunca vai poder ser 4, 5 ou 6.  As variáveis são apenas nomes para valores (vulgo dados), e não uma caixa para o que lá quisermos colocar dentro, seja uma bola azul ou amarela. Esta abordagem é o que diferencia o paradigma funcional do imperativo: no paradigma funcional “transformam-se” valores, aplicam-se em novas situações, no paradigma imperativo alteram-se estados (o conteúdo das variáveis por exemplo).

O Python é uma linguagem que, no meu ponto de vista, extremamente flexível, adaptando-se facilmente às nossas necessidades, e que suporta 3 paradigmas: o funcional, o imperativo e o orientado a objectos. É dada uma grande ênfase à programação orientada a objectos (uma vez que tudo em Python são objectos e a própria linguagem “obriga” a perceber a lógica da programação orientada a objectos), mas não dá tanta à programação funcional. Neste artigo pretendo apenas elucidar o leitor sobre alguns dos recursos disponibilizados pela linguagem para a programação no paradigma funcional e o seu funcionamento, estando a explicação/análise da programação funcional em si fora do objectivo deste artigo.

Continuar a ler

Lucene: programar um motor de busca

O que é o Lucene

O Lucene talvez dever-se-ia tratar por “a” Lucene, uma vez que se trata de uma biblioteca de recuperação de informação textual (do inglês “information retrieval”) de código aberto e criada por Doug Cutting. Originalmente, foi escrita em Java, mas foi rapidamente adaptada a outras linguagens de programação, nomeadamente Python (Pylucene), Perl (Plucene), C# (Lucene.net), C++ (CLucene), e Ruby (Ferret). Contudo, estas adaptações estão normalmente ligeiramente atrasadas no que toca à versão original em Java, actualmente mantida e alojada pela Apache Software Foundation.

Simples de aprender a usar, mas poderosa nas mãos de um programador experiente, esta biblioteca suporta desde índices estáticos com um campo, até múltiplos índices em paralelo, com centenas de campos e milhares de acessos simultâneos. É ideal para todo o tipo de projectos, desde o simples website com a “search box” até um grande motor de busca sobre, por exemplo, a colecção de PDFs que se tem no disco rígido.

Continuar a ler

Interacção Python/MySQL

Introdução

Bases de dados são armazéns estruturados de informação, nas quais é guardada uma variedade imensa de dados. Na verdade, são muitas vezes o núcleo duro de aplicações informáticas, sem que, também na maioria das vezes, o utilizador final se aperceba. A importância desta tecnologia hoje em dia é imensa, sendo que foi necessário o desenvolvimento de ferramentas para que programadores possam dela tirar partido. Entre essas ferramentas, incluem-se diversos sistemas de gestão de bases de dados, como o MySQL, o SQL Server, a Oracle, entre outros, que permitem a manutenção das bases de dados de uma maneira relativamente simples. Porém, também para estas ferramentas de gestão foi desenvolvido software para facilitar ainda mais a vida a quem desenvolve. Neste artigo pretende-se explicar e exemplificar o uso de uma API que permite a manutenção de bases de dados usando MySQL a partir de scripts de Python. Porém, não é limitado apenas a MySQL. Outros adaptadores para outros sistemas de gestão de bases de dados funcionam de maneira muito semelhante, por vezes até bastando apenas mudar uma linha de código.

Continuar a ler

Python – Curso Completo

Este livro apresenta-se como uma escolha para quem quer conhecer todos os aspectos do Python, tanto no desenvolvimento web como no desenvolvimento para desktop.

Apesar de ter sido lançado há alguns anos, o livro alcança, actualmente, a maior parte dos objectivos a que se propôs. Houve evoluções na linguagem que não estão reflectidas neste livro, como a existência de tipos booleanos.

Continuar a ler

Bioinformática – O lado do programador

Problemas e Soluções

No seguimento do artigo “Introdução à Bioinformática” (11ª Edição da PROGRAMAR), no qual abordei a existência desta área da Informática (e da Biologia), passo agora a exemplificar, em termos mais práticos, as ferramentas e técnicas mais populares, que são diariamente usadas por milhares de cientistas.

Relembrando, Bioinformática define-se como o aplicar de técnicas de Matemática Aplicada, Informática, Estatística e Inteligência Artificial a problemas concretos de Biologia e/ou Bioquímica. Entre os problemas mais comuns, temos o alinhamento de sequências de DNA, a procura de genes (por associação e prévio conhecimento de outros), a assemblagem de genomas, a predição de estruturas de proteínas (secundárias, terciárias e quaternárias), bem como outras áreas menos “moleculares”, como a evolução.

Continuar a ler

Python – Introdução

Introdução

O Python é, como o seu autor diz, uma linguagem de programação interpretada, interactiva, orientada a objectos e dinâmica.

Ao contrário de muitas outras linguagens de programação, a delimitação dos blocos de instruções é feita por alinhamento (indentação), ou seja, não há delimitadores como o begin e end do Pascal, ou { e } da linguagem C. Além disso oferece tipos de dados de alto nível como strings, dicionários, listas, tuplas, classes, etc.

A sintaxe é fácil de compreender e domina-se rapidamente, sendo essas duas características consideradas grandes vantagens da linguagem.

Continuar a ler