Introducción

Instalación

Preguntas frecuentes (faq)

Sintaxis, palabras clave y funciones integradas

Distribución estándar

Implementación del import

Interfaz del navegador

Introducción - DOM API
Creando un documento
Accediendo a los elementos
Atributos, propriedades y métodos

Eventos
Eventos del ratón
Eventos del teclado
Eventos de foco
Eventos de arrastre

Query string

Usando objetos y librerías Javascript

Módulos específicos de Brython

El módulo integrado `browser`
browser.aio
browser.ajax
browser.html
browser.local_storage
browser.markdown
browser.object_storage
browser.session_storage
browser.svg
browser.template
browser.timer
browser.webcomponent
browser.websocket
browser.worker

javascript

Trabajando con Brython

Opciones de la función brython()
Testing y depuración
Desplegando una aplicación

Cookbook

Hola Mundo !
Insertar contenido en un elemento
Marcado HTML (bold,italic...)
Tabla HTML
Añadir (*bind*) y eliminar (*unbind*) eventos
Handle options in a SELECT
Arrastrar y soltar
Obtener el contenido de un elemento
Leer el contenido de un fichero
Almacenar objetos localmente
Ejemplo de onmouseover
 

Implementación de import

Como en Python estándar, puedes instalar módulos o paquetes en tu aplicación colocándolos en el directorio raíz o en directorios con un fichero __init__.py.

Destacar que los módulos deben ser codificados en utf-8 ; la declaración de codificación al inicio del script será ignarada.

Por ejemplo, la aplicación podría disponer de los siguientes ficheros y directorios :

.bundle-include
app.html
brython.js
brython_modules.js
brython_stdlib.js
index.html
users.py
utils.py
+ app
    __init__.py
    records.py
    tables.py

Un script Python en app.html puede ejecutar los imports

import users
import app.records

Si la distribución estándar ha sido incluida en la página mediante

<script type="text/javascript" src="brython_stdlib.js"></script>

el script podrá también hacer, por ejemplo,

import datetime
import re

Para importar módulos o paquetes Brython usa el mismo mecanismo que CPython: para resolver "import X", el programa busca un fichero en diferentes sitios:

  • un módulo X en la distribución estándar
  • un fichero X.py en el directorio raíz
  • un fichero __init__.py en el directorio X

Debido a que el navegador no tiene acceso directo al sistema de ficheros, la búsqueda de un fichero debe realizarse mediante una llamada Ajax, que devolverá un mensaje de error si no encuentra el fichero en la ruta especificada.

Optimización

El proceso descrito anteriormente tiene dos pegas principales :

  • el relativo gran tamaño de brython_stdlib.js (más de 3 Mb)
  • el tiempo consumido en las llamadas Ajax

Para optimizar los _imports, si Brython fue instalado usando pip, puedes generar un fichero brython_modules.js que solo contendrá los módulos usados por la aplicación.

Para ello, desde el directorio raíz de la aplicación ejecuta en la línea de comandos

brython-cli --modules

Ten en cuenta que este programa analiza el código Brython en todos los scripts, módulos y páginas HTML del directorio y todos sus sub-directorios. La versión CPython usada debe ser compatible con el código Brython: por ejemplo, si existen f-strings en el código Brython, se requiere usar CPython 3.6+, si no obtendrás errores de sintaxis.

Puedes reemplazar todas las ocurrencias de

<script type="text/javascript" src="brython_stdlib.js"></script>

por

<script type="text/javascript" src="brython_modules.js"></script>