2.4 Diferentes bases de datos profesionales
3 Mapeo de objetos relacionales – ORM
3.1 SQLAlchemy ORM
3.2 Peewee ORM
3.3 Pony ORM
3.4 Django models
3.5 ORM asíncrono GINO
4 Bases de datos NoSQL
4.1 Bases de datos clave-valor
4.2 Bases de datos orientadas a documentos
4.3 Bases de datos en tiempo real
4.4 Bases de datos para series temporales
4.5 Bases de datos orientadas a grafos de datos
4.6 Bases de datos columnares
4.7 Bases de datos para búsquedas de texto - Full-text databases
5 Sistemas de clave-valor y cachés en Python - dbm, Memcached y Redis
5.1 Usar dbm en Python
5.2 Memcached en Python
5.3 Usar Redis como base de datos y caché en Python
6 Bases de datos en la nube
6.1 Servicios de bases de datos en la nube
CAPÍTULO 8 PARALELISMO Y CONCURRENCIA
1 Procesos en Python
1.1 Lanzar procesos externos - subprocess
1.2 Múltiples procesos en Python - multiprocessing
2 Hilos en Python
2.1 GIL en CPython
2.2 Hilos en Python - threading
3 Ejecuciones de hilos y de procesos - concurrent futures
4 Asincronía de entrada/salida – Asynchronous I/O
4.1 AsyncIO en Python
CAPÍTULO 9 INTERFACES DE USUARIO
1 Interfaz con consola de comandos en Python – CUI
1.1 input y print – E/S estándar
1.2 CLI estándar - argsparse
1.3 Interfaces de usuario basadas en texto
2 Interfaces gráficas de usuario - GUI
3 Tkinter a fondo
3.1 Componentes principales de una aplicación tkinter
3.2 Componentes disponibles
3.3 Disposición y propiedades de elementos en tkinter
3.4 Manejo de eventos en tkinter
3.5 Organización de la aplicación
4 Ejemplos de aplicaciones creadas con tkinter
4.1 Calculadora de porcentajes creada con tkinter
4.2 Analizador de ficheros de texto creado con tkinter
CAPÍTULO 10 SERVICIOS DE RED Y APLICACIONES WEB
1 Protocolos de Internet y Python
1.1 Transferencia de hipertexto - HTTP y HTTPS
1.2 Transmisión de ficheros – FTP
1.3 Conexiones entre servidores – Telnet
1.4 Conexiones seguras entre servidores – SSH y SFTP
1.5 Correo electrónico – SMTP
2 Desarrollo web
2.1 Participantes en la web
2.2 Trabajando con protocolo HTTP (request-response)
2.3 Estructura de las aplicaciones web en Python
2.4 Servidor simple utilizando http.server
2.5 Frameworks web en Python
3 Desarrollando un blog con Django
3.1 Planteamiento de la aplicación a realizar
3.2 Primeros pasos con Django
3.3 Primera aplicación con Django
3.4 Modelos con Django
3.5 Panel de administración de Django
3.6 Añadiendo contenido por defecto
3.7 Desarrollando la lógica de la aplicación
3.8 Renderizado basado en plantillas
ANEXO A TESTEO Y COBERTURA DE APLICACIONES EN PYTHON
Capítulo 1 INTRODUCCIÓN AL LENGUAJE PYTHON
Hoy día, la tecnología se ha vuelto un elemento fundamental para todos los seres humanos. Existen dispositivos que ayudan a realizar casi todas las actividades cotidianas, desde teléfonos inteligentes que resuelven cualquier duda en cuestión de segundos a miniordenadores que pueden ser integrados en pacientes como una prótesis, pasando por cohetes espaciales capaces de enviar robots fuera de nuestro planeta y recopilar información constantemente durante años. Muchos de estos componentes tecnológicos son operados por un software encargado de velar por su correcto funcionamiento y por su ejecución óptima. Por tanto, el desarrollo de este software es un pilar muy importante en la evolución de la tecnología y de la humanidad en su conjunto, además de ser un ámbito en auge que, se prevé, seguirá creciendo y necesitando de más expertos en los próximos años.
El software se compone de algoritmos. Estos no son más que la sucesión de comandos, programados en un lenguaje entendible de alguna forma por los humanos, que son transformados a un lenguaje que las máquinas pueden procesar y ejecutar con rapidez. El desarrollo del software se hace utilizando lenguajes de programación que se definen con una gramática específica (similar a un lenguaje hablado por los seres humanos) que define los comandos y la lógica que debe aplicar el sistema en cuestión bajo unos parámetros específicos. Existen multitud de lenguajes de programación, que difieren en sus propósitos y características. Encontraremos desde lenguajes de alto nivel (muy parecidos a los lenguajes que utilizamos para comunicarnos entre humanos) hasta lenguajes muy próximos al código máquina, pasando por lenguajes con un propósito puramente educacional o creados por simple diversión para los desarrolladores.
En este libro se darán las bases y los conceptos principales de uno de los mejores lenguajes de programación que existe hasta el momento, además de ser uno de los que se encuentra en mayor auge: el lenguaje de programación Python.
Corría el año 1989 cuando un joven holandés de 24 años comenzó sus primeras implementaciones del lenguaje de programación que hoy conocemos como Python. Este joven era Guido van Rossumy trabajaba para la empresa Centrum Wiskunde & Informatica (CWI). En su tiempo libre, no paraba de pensar en cómo mejorar la interfaz de usuario que utilizaban para trabajar con el sistema operativo Amoeba. Con esta idea en mente, nació el lenguaje de programación Python,que en principio iba a ser un proyecto pequeño de un lenguaje de programación que sucediera al lenguaje ABC que desarrollaban en CWI y que tuviera manejo de excepciones y ayudara a interactuar mejor con el sistema operativo. El nombre del lenguaje proviene de la afición que tenía Van Rossum a la serie de televisión Monty Python's Flying Circus y no de algo relacionado con el mundo de los reptiles.
La primera versión de Python fue lanzada en febrero de 1991 con el número de versión 0.9.0. En esta versión ya tenía componentes como clases con herencia, gestores de excepciones, funciones y tipos de datos como listas y diccionarios o cadenas de caracteres, con lo que desde sus inicios se veía su potencial frente a los demás lenguajes del momento (C++, Common Lisp o Perl).
Van Rossum ha sido el principal autor del lenguaje y quien ha dirigido el rumbo del mismo desde su inicio hasta que, en julio de 2018, decidió abandonar el cargo de benevolent dictator for life (BDL, dictador benevolente de por vida) para formar parte de una comisión directiva formada por cinco miembros.
1.1 EVOLUCIÓN DE LAS VERSIONES DE PYTHON
Durante los años que lleva en desarrollo, Python ha sufrido numerosos cambios y, hoy día, sigue recibiéndolos continuamente por medio de las PEP (siglas en inglés de Python Enhancement Proposals), que son propuestas que se crean en la comunidad de Python y que, de aprobarse, se aplican al código del lenguaje, a la documentación o a la parte específica que trate la PEP (se profundizará en esta cuestión más adelante).
A continuación, se nombran las principales versiones de Python con los cambios más destacados y sus fechas de lanzamiento:
• Versión 0.9 (febrero de 1991):primera versión de Python publicada por Van Rossum. Ya tenía componentes actuales como listas, diccionarios, clases y herencia, cadenas de caracteres y otras muchas características.
• Versión 1.0 (enero de 1994):se introdujo por primera vez la programación funcional y funciones como lambda, map o filter, entre otras.
Читать дальше