Noticias Weblogs Foros Wiki Código
 

Python

Descripci贸n del lenguaje

Python es es un lenguaje interpretado, interactivo y orientado a objetos. As铆 es como describen a Python en su web oficial pero Python es algo m谩s que eso: Python es:

  • Un lenguaje con el que aprender: Su sint谩xis es muy sencilla y sus caracter铆sticas de lenguaje de alto nivel le hacen ideal para quien se quiera iniciar en la programaci贸n.
  • Multiplataforma: Existen interpretes para la mayor铆a de las plataformas Windows, *nix, Amiga.
  • Lenguaje de muy alto nivel: Con estructuras de datos y operaciones de alto nivel que permiten resolver problemas con poco c贸digo.
  • Modular: Un programa en Python puede ser construido a base de m贸dulos con sus propios espacios de nombres y clases.
  • Ampliable: Con algunos conocimientos de C o C++ puedes programar tus propios m贸dulos, funciones o crear bindings para otros programas, por ejemplo, las wxPython con las wxWindows, PyQT con las QT, etc鈥
  • Un lenguaje de programaci贸n funcional: Sus funciones map, filter, lambda etc鈥, tipos de datos como listas o tuplas y la recursividad permiten abordar el paradigma de la programaci贸n funcional desde Python para resolver problemas de 铆ndole matem谩tica (o de cualquier otro tipo).

Otras caracter铆sticas de Python son:

  • Independiente del paradigma: Se puede utilizar programaci贸n imperativa, orientada a objetos o funcional (tambi茅n se pueden combinar).
  • Manejo de excepciones, con la posibilidad de crear tus propias excepciones.
  • Gran conjunto de TADs. Pilas, colas, 谩rboles, listas.
  • Biblioteca de funciones y clases extens铆sima. Basta navegar por la ayuda de Python o buscar por la red.
  • Consola interactiva: 脷til para probar c贸digo.
  • Gratuito

Aqu铆 ten茅is una lista de organizaciones y empresas que usan Python (Yahoo, Google, NASA, ILM). Es usado mayoritariamente como lenguaje de scripting aunque, por ejemplo, el instalador de Red Hat est谩 hecho con Python.

Tambi茅n desde aqu铆 pod茅is descargar un script Python hecho por la gente de Google para su herramienta Google Sitemaps.

Para terminar un ejemplo de lo que se puede hacer con Python. Una aplicaci贸n P2P cliente/servidor en tan s贸lo 15 l铆neas de c贸digo. Dejo para otro post explicaros c贸mo est谩 hecha porque a priori es complejo entender c贸mo est谩 hecha para los que no conozcan Python.

Si quer茅is saber por qu茅 bautizaron al lenguaje como Python pod茅is consultar este art铆culo que escrib铆 hace tiempo.

Programaci贸n de aplicaciones GUI (visuales) en Python

Python es muy utilizado como un lenguaje para crear aplicaciones de consola o scripts pero con Python se puede hacer mucho m谩s, por ejemplo, desarrollar aplicaciones visuales complejas.

驴C贸mo se hace esto? De varias formas鈥 Primero os listo las bibliotecas gr谩ficas que se pueden utilizar con Python:

  • PyQT - Bindings para QT. Una buena opci贸n ahora que las qt son completamente GPL para windows.
  • PyGTK - Bindings para las GTK+
  • WxPython - Bindings para las WxWindows. Es la m谩s portable de todas ya que la finalidad de las WxWindows es la portabilidad. Si la aplicaci贸n que desarrollemos se ejecuta en Windows utilizar谩 las ventanas nativas de windows si lo hacemos en Linux usar谩 las GTK. Para wxPython tenemos Wax que es una capa de abstracci贸n.
  • TkInter - La interfaz para TK de Python. Son las bibliotecas gr谩ficas que vienen 鈥渄e serie鈥 con Python. Derivadas de las tkinter existen las tix que son una extensi贸n con m谩s funcionalidades.

Como podemos ver en Python podemos utilizar multitud de bibliotecas gr谩ficas, ya es elecci贸n de cada uno elegir las que m谩s le guste. Ahora os preguntar茅is 驴Y con qu茅 GUI-IDE podemos dise帽ar los interfaces?

Para las PyQT:

Si quer茅is trabajar con pyqt pod茅is utilizar el qt designer. Los ficheros ui generados por el qt designer pueden ser convertidos a ficheros .py utilizando pyuic que va incluido en las pyqt-tools. Una vez generados los interfaces s贸lo os falta conectar los botones y eventos con vuestras funciones.

Para las PyGTK:

Pod茅is utilizar Glade, a diferencia de las pyqt los ficheros generados por glade (.glade) no se convierten a ficheros python (.py) sino que se utiliza libglade. Al igual que en qt el resto es simplemente conectar botones y eventos con funciones.

Para las WxWindows:

Tenemos el excelente Boa Constructor que es una maravilla, porque, por ejemplo, para conectar botones o eventos con funciones lo puedes hacer desde el propio ide sin necesidad de teclar c贸digo. Es lo m谩s parecido que puedes encontrar a Delphi o Visual Basic.

Otra alternativa tambi茅n muy buena es la combinaci贸n WxGlade + SPE. WxGlade es un dise帽ador de interfaces al estilo de Glade y SPE es un ide para python que se puede integrar con WxGlade para el desarrollo GUI.

Por 煤ltimo, tenemos PythonCard que nos permite desarrollar aplicaciones sencillas en poco tiempo.

Para TkInter:

Desconozco si existe alguna herramienta para generar interfaces.

Si quer茅is realizar programas multiplataforma os recomiendo utilizar WxWindows con Boa Constructor. Es lo m谩s pr谩ctico y r谩pido. WxGlade con SPE tambi茅n es otra opci贸n bastante aceptable. Aqu铆 ten茅is un ejemplo de una aplicaci贸n desarrollada con Boa.

Si quer茅is realizar programas destinados s贸lo a Linux, os recomiendo PyGTK con Glade y libglade, adem谩s pod茅is utilizar las gnome-python que es una interfaz de la gnome-libs (adem谩s incluyen las pygtk).

Para saber m谩s sobre el desarrollo GUI pod茅is consultar el Wiki de Python: GUI Programming.

Programaci贸n de aplicaciones web en Python

Programaci贸n de aplicaciones web en Python

Otra de las gran virtudes de Python es la cantidad de alternativas existentes para el desarrollo de aplicaciones web, existen servidores de aplicaciones complejos y ligeros, plantillas para el desarrollo web y la posibilidad de usar python embebido en un documento html como si fuese PHP o ASP.

Zope

Zope es un servidor de aplicaciones orientado al desarrollo de CMS (content management systems), portales, intranets y aplicaciones web de ese estilo. Zope est谩 compuesto de m贸dulos u objetos y existen multitud de ellos disponibles gratuitamente o de pago que permiten ampliar la funcionalidad del mismo. Adem谩s incluye su propio servidor web, ftp, xml-rpc aunque puede ser utilizado con Apache como servidor web.

Zope permite la creaci贸n de portales en poco tiempo, incluye un buscador, gestor de noticias, gestor de usuarios, etc.. se puede a帽adir funcionalidad a Zope utilizando Python, lenguaje en el que est谩 creado el propio Zope.

Webware

Es un conjunto de componentes orientados al desarrollo web, Webware incluye:

- Servidor de aplicaciones

- Servlets

- Middle Kit: Similar a los Java Beans

- Python Server Pages, similares a PHP o ASP

- Gesti贸n de usuarios y autenticaci贸n.

- Un wrapper para los cgi. (Un CGI que hace de conector para scripts CGI en python que ya tengamos hechos)

Webware es similar a Tomcat sin la complejidad del lenguaje Java. Webware se integra muy bien con las Cheetah un sistema de plantillas y generaci贸n de c贸digo para python como las Velocity de Java o Smarty de PHP pero con bastante m谩s funcionalidad.

PSP

Las mod_python psp (Python Server Pages) sirven para insertar c贸digo en python entre lenguaje HTML de forma similar a PHP o ASP para crear p谩ginas din谩micas. Para ello hace falta un servidor web Apache con el mod_python instalado, configurar una serie de directivas en el fichero de configuraci贸n de Apache y ya podremos comenzar a mezclar c贸digo HTML con Python. Para comenzar con ellas podemos leer este art铆culo de onlamp donde se nos habla de como utilizar sesiones, depurar etc鈥

Como podemos ver tenemos varias alternativas a la hora de desarrollar un sitio web: con Zope podemos generar en poco tiempo portales orientados a la gesti贸n de contenidos e informaci贸n, con Webware podemos crear aplicaciones web complejas al estilo de las que se pueden hacer utilizando j2ee y mediante las PSP podemos crear aplicaciones web m谩s sencillas tambi茅n en poco tiempo.

 
guia/python.txt · 脷ltima modificaci贸n: 2008/06/18 10:23 (editor externo)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki