Creado por Anaconda y lanzado en abril de 2022, PyScript es una nueva tecnología experimental pero prometedora que hace que el tiempo de ejecución de Python esté disponible como lenguaje de secuencias de comandos en navegadores habilitados para WebAssembly. Todos los navegadores de uso común ahora admiten WebAssembly, el estándar de tiempo de ejecución de alta velocidad que lenguajes como C, C++ y Rust se pueden compilar. La implementación de referencia de Python está escrita en C, y un proyecto anterior, Pyodide, proporcionó un puerto WebAssembly del tiempo de ejecución de Python. Sin embargo, PyScript tiene como objetivo proporcionar un entorno completo en el navegador para ejecutar Python como un lenguaje de programación web. Se basa en Pyodide pero agrega o mejora características como la capacidad de importar módulos de la biblioteca estándar, usar importaciones de terceros, configurar interacciones bidireccionales con el Modelo de objetos de documento (DOM) y hacer muchas otras cosas útiles en ambos. los mundos Python y JavaScript. En este momento, PyScript sigue siendo un proyecto prototípico y experimental. Anaconda no recomienda usarlo en producción. Pero los usuarios curiosos pueden probar ejemplos en el sitio de PyScript y utilizar los componentes disponibles para crear aplicaciones experimentales de Python más JavaScript en el navegador. En este artículo, haremos un recorrido por PyScript y veremos cómo facilita Python y JavaScript. interacciones en sus aplicaciones web. Programación con PyScript En esencia, PyScript consta de una única inclusión de JavaScript que puede agregar a una página web. Esto incluye carga el tiempo de ejecución base de PyScript y agrega automáticamente soporte para etiquetas personalizadas utilizadas en PyScript. Aquí hay un ejemplo simple de un proyecto «Hola, mundo» en PyScript:








La etiqueta script en el encabezado del documento carga la funcionalidad principal de PyScript. La hoja de estilo .css es opcional, pero útil. Entre otras cosas, inserta avisos al usuario en el momento de carga de la página sobre lo que está haciendo la página: cargar el tiempo de ejecución de Python, inicializar, etc. El código Python está incluido en la etiqueta script con un atributo type=»py». Tenga en cuenta que el código debe formatearse según las convenciones de sangría de Python o no se ejecutará correctamente. Tenga esto en cuenta si utiliza un editor que reformatea HTML automáticamente; podría alterar el contenido del bloque de script y hacerlo imposible de ejecutar. También puede hacer referencia a un archivo .py en lugar de incluir el script en línea, lo que puede ser más fácil. Cualquier código Python se evalúa una vez que los componentes PyScript terminan de cargarse. Puede elegir si la salida se envía al DOM (use pyscript.display) o a una terminal integrada. Si usa la terminal, debe incluir la terminal como un atributo en la etiqueta del script. (Más sobre esto a continuación). Si el script en las etiquetas escribe en la salida estándar (como con una declaración de impresión), puede dirigir dónde desea que se muestre la salida en la página proporcionando una propiedad de salida. En este ejemplo, la salida estándar del script se dirige al div con el ID «out». Si guarda esto en un archivo y lo abre en un navegador web, primero verá un indicador de «cargando» y una pausa. a medida que el navegador obtiene el tiempo de ejecución de PyScript y lo configura. El tiempo de ejecución debería permanecer almacenado en caché en cargas futuras, pero aún tardará un momento en activarse. Después de eso, Hola mundo debería aparecer en la página dos veces: una en la parte superior en HTML y otra en un panel negro que es el terminal integrado. Importaciones de biblioteca estándar Los scripts que utilizan únicamente las funciones integradas de Python son sólo algo útiles. La biblioteca estándar de Python está disponible en PyScript de la misma manera que la usaría en Python normal: simplemente importe y comience a trabajar. Las importaciones de bibliotecas estándar deberían funcionar en PyScript. Si quisiera modificar el bloque de script anterior para mostrar la hora actual, no necesitaría hacerlo de manera diferente a como lo haría en Python convencional: import datetime print («Fecha y hora actuales :», datetime.datetime.now().strftime(«%Y/%m/%d %H:%M:%S»)) Uso de bibliotecas de PyPI ¿Qué sucede si desea instalar un paquete de PyPI y usarlo? PyScript le permite especificar las configuraciones del proyecto, incluidos los paquetes de terceros que se instalarán desde PyPI, mediante un archivo de formato .toml o .json en el directorio de su proyecto. Veamos cómo funciona usando .toml. Para usar el archivo de configuración del proyecto, deberá incluir la directiva de configuración en su etiqueta de script:

Esto abre una terminal e imprime hola mundo, pero no permite ninguna interactividad. Para la interacción, debe utilizar el atributo de trabajador:

El trabajador ejecuta su programa en un trabajador web, que es esencialmente un subproceso. Tenga en cuenta que no puede utilizar trabajadores web en un archivo HTML cargado localmente; debes cargarlo desde un servidor web que proporcione ciertos encabezados. La documentación de PyScript explica cómo funciona esto en detalle. La mayor parte de lo que es posible en una consola normal, como colorear y Unicode, también debería ser compatible con el terminal PyScript. Interactuar con DOM y JavaScript Debido a que PyScript se basa en la tecnología del navegador, tiene mecanismos para interactuando con el DOM. Por ejemplo, si quisiera obtener el valor de un cuadro de entrada en una página web y usarlo en su código Python, haría esto: desde la ventana de importación de pyscript, document inputbox = document.querySelector("#my-input" ) print("Valor de entrada:", inputbox.value) PyScript también incluye un módulo llamado pydom que permite la creación dinámica de objetos en la página: from pyweb import pydom new_div = pydom.create("div") new_div.content = " Hola mundo" Esto crea un nuevo elemento div en la página y lo completa con texto. La mayoría de los otros tipos de manipulaciones que puedes realizar con el DOM en JavaScript (como agregar elementos y cambiar atributos) se pueden realizar a través de la biblioteca pydom. Copyright © 2024 IDG Communications, Inc.

Source link