Python es un pegamento. Podemos usarlo para unir diferentes elementos de código. Como lenguaje, Python es fácil de aprender y legible por humanos, lo que lo convierte en uno de los lenguajes más efectivos para el aprendizaje y la programación de propósito general. Parte del encanto de Python son los muchos módulos de código que se pueden insertar fácilmente en un proyecto.
Thonny es un editor poderoso pero simple para Python y, con el lanzamiento de la versión 4, queríamos usarlo para crear un proyecto. En este tutorial, usaremos la última versión de Thonny para crear una aplicación web que extraerá datos de acciones de Raspberry Pi de rpilocator.com y utilícelo para completar una tabla en nuestra aplicación.
RSS es una gran manera de compartir un flujo de información. Se puede utilizar para publicar titulares de noticias, como el Fuente RSS de hardware de Tom o incluso la última tira cómica de xkcd.
Tenga en cuenta que la fuente RSS de rpilocator no está tan actualizada como los datos de rpilocator.com. Piense en este proyecto más como un sistema de notificación que como una herramienta de «francotiradores».
Instalación de Thonny 4.0
Thonny es el IDE de Python predeterminado en el frambuesa pi, pero no se limita solo a esa máquina. Thonny también está disponible para máquinas Windows, Mac y Linux, y se puede usar para escribir Python y MicroPython para dispositivos como el Frambuesa Pi Pico W y ESP32.
1. Abre un navegador a la página de inicio de Thonny.
2. Seleccione la descarga para su sistema operativo. Para Windows, hay algunas opciones para elegir. La primera opción es qué versión de Python recomendaríamos la última (3.10 en el momento de escribir este artículo). Lo siguiente es su elección de instalar Thonny en su máquina o usar una versión portátil. Recomendamos instalar Thonny en su máquina.
3. Haga clic en el archivo descargado para iniciar la instalación.
4. Haga clic en «Más información» para continuar con la instalación. La nueva instalación tiene un certificado que es relativamente desconocido y aún tiene que construir una reputación.
5. Haga clic en «Ejecutar de todos modos» para continuar.
6. Presione siguiente para continuar.
7. Acepte el acuerdo de licencia.
8. Seleccione la casilla de verificación para crear un icono de escritorio. Este es un paso opcional. Elegimos no hacerlo porque preferimos los íconos en la barra de tareas.
9. Haga clic en Instalar para iniciar el proceso de instalación.
10 Haga clic en Finalizar para finalizar la instalación.
Creando nuestro proyecto con Thonny 4.0
Thonny está enfocado en principiantes, pero no se deje engañar, Thonny es un editor competente y con todas las funciones para creadores. Thonny tiene un diseño de múltiples ventanas que se puede editar para satisfacer sus necesidades.
1. Archivos: Este es un administrador de archivos básico que se puede usar para abrir archivos en un proyecto. Raspberry Pi Pico W y otros dispositivos MicroPython abrirán un panel adicional que podemos usar para copiar archivos hacia y desde el dispositivo.
2. Área de codificación: Aquí es donde creamos el proyecto para nuestro código. Podemos tener múltiples pestañas, para múltiples archivos.
3. Concha de pitón: Python Shell (REPL, Read, Eval, Print, Loop) es donde podemos ver la salida de nuestro código y también interactuar con él.
4. Asistente: Si su código tiene un error o no sigue una guía de estilo, se marcará aquí.
Instalación de módulos con Thonny
Los módulos de Python (a veces también denominados «bibliotecas») son segmentos de código preescritos que permiten una funcionalidad adicional. Los ejemplos populares incluyen RPI.GPIO y GPIO Zero para Raspberry Pi. Los módulos suelen abstraer/simplificar tareas complejas. En nuestro proyecto utilizaremos dos módulos. PyWebIO es un módulo para crear contenido HTML usando Python. También crea un servidor web que podemos usar para conectarnos rápidamente a nuestra aplicación. El segundo módulo es Feedparser, un módulo lector de feeds RSS que usaremos para leer el feed de nivel de stock de rpilocator Raspberry Pi.
1. Abra Thonny y asegúrese de que no haya proyectos abiertos.
2. Haga clic en Herramientas >> Administrar paquetes. Thonny tiene una GUI integrada para el administrador de paquetes Python 3 «pip».
3. Buscar pywebio.Este es el módulo que usaremos para generar una página web usando Python.
4. Haga clic en Instalar para descargar e instalar el módulo.
5. Repite los pasos anteriores, esta vez instala feedparser. Feedparser es un módulo de Python para fuentes RSS.
6. Haga clic en Cerrar para salir del cuadro de diálogo.
Escribir el código del proyecto
Nuestro objetivo es crear un proyecto de Python que utilice los datos de la fuente RSS de rpilocator para completar una tabla. Tomaremos las cinco entradas actuales y las mostraremos en una tabla HTML, creada con Python.
1. En un nuevo documento en blanco, importe dos módulos de pywebio. El primero contiene el código para iniciar un servidor web simple. El módulo pywebio.output se utiliza para generar elementos HTML como tablas e hipervínculos.
from pywebio import start_server
from pywebio.output import *
2. Importe el módulo feedparser.
import feedparser
3. Crea una función llamada main.
def main():
4. Dentro de la función, cree un objeto, «stock» y utilícelo para almacenar la salida analizada de la fuente RSS de rpilocator.
stock = feedparser.parse('https://rpilocator.com/feed/')
5. Cree tres listas vacías, in_stock, in_stock_link y categoría. Estos se utilizarán para almacenar los datos recuperados del objeto «stock» que contiene los datos RSS.
in_stock = []
in_stock_link = []
category = []
6. Cree un bucle for que se repetirá cinco veces.
for i in range(5):
7. Use «agregar» para agregar el estado del stock, el enlace y la categoría (nombre del revendedor) a la lista correspondiente. Los datos RSS almacenados en “stock” son una mezcla de listas y diccionarios. Para los datos de una lista podemos usar su índice numérico, que es el valor de i en nuestro bucle for. Esto contará de 0 a 4 a medida que itera el bucle for. Los datos almacenados en un diccionario requieren que conozcamos la clave (‘entradas’ por ejemplo). El uso de la clave devolverá su valor.
in_stock.append(stock['entries'][i]['title'])
in_stock_link.append(stock['entries'][i]['link'])
category.append(stock['entries'][i]['category'])
8. Fuera del ciclo for, cree una notificación emergente usando «brindis». El mensaje puede ser una mezcla de fuerte e incluso emojis.
toast('?I found Raspberry Pi in stock!?')
9. Use «put_html» para escribir un elemento de encabezado HTML H1 en la página web. Podemos usar esta función para escribir cualquier elemento HTML en la página, pero tenga en cuenta que el Módulo PyWebIO tiene muchos medios diferentes para crear elementos especializados.
put_html("<h1>Raspberry Pi Stock</h1>")
10 Cree una lista, «tabla» y utilícela para almacenar dos columnas de datos, tomados de nuestras listas in_stock, in_stock_link y categorías. La primera fila son los encabezados de columna Detalles y URL. En stock imprimirá una breve descripción de lo que hay en stock. Usando «put_link» creamos un hipervínculo HTML, con el texto del enlace siendo el nombre del revendedor, almacenado en la lista de categorías, y la dirección almacenada en in_stock_link.
table = [['Details','URL'],
[in_stock[0], put_link(category[0],url=in_stock_link[0])],
[in_stock[1], put_link(category[1],url=in_stock_link[2])],
[in_stock[2], put_link(category[2],url=in_stock_link[2])],
[in_stock[3], put_link(category[3],url=in_stock_link[3])],
[in_stock[4], put_link(category[4],url=in_stock_link[4])],
]
11 Use la función «put_table» de PyWebIO para crear una tabla HTML a partir de nuestro objeto de tabla.
put_table(table)
12 Use «put_link» para crear un hipervínculo debajo de la tabla, en este caso nos lleva a la fuente de los niveles de stock de Raspberry Pi, rpilocator.
put_link('Data provided by RPiLocator',url="https://rpilocator.com")
13 Fuera de la función, llame a la función «start_server» de PyWebIO y pásele tres argumentos. Los argumentos son nuestra función «principal» que creará la tabla a partir de los datos RSS. El puerto está configurado en 8080 y la depuración está habilitada a través del shell de Python y en nuestra página web.
start_server(main, port=8080, debug=True)
14 Guarde el código como RSS-Feed-Reader.py y haga clic en Ejecutar para comenzar.
15. Haga clic en el enlace en el shell de Python para abrir la página web en su navegador predeterminado.
Listado completo de códigos
from pywebio import start_server
from pywebio.output import *
import feedparser
def main():
stock = feedparser.parse('https://rpilocator.com/feed/')
in_stock = []
in_stock_link = []
category = []
for i in range(5):
in_stock.append(stock['entries'][i]['title'])
in_stock_link.append(stock['entries'][i]['link'])
category.append(stock['entries'][i]['category'])
toast('?I found Raspberry Pi in stock!?')
put_html("<h1>Raspberry Pi Stock</h1>")
table = [['Details','URL'],
[in_stock[0], put_link(category[0],url=in_stock_link[0])],
[in_stock[1], put_link(category[1],url=in_stock_link[2])],
[in_stock[2], put_link(category[2],url=in_stock_link[2])],
[in_stock[3], put_link(category[3],url=in_stock_link[3])],
[in_stock[4], put_link(category[4],url=in_stock_link[4])],
]
put_table(table)
put_link('Data provided by RPiLocator',url="https://rpilocator.com")
start_server(main, port=8080, debug=True)