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
 

Problema

Leer el contenido de un fichero

Solución

Usaremos la función integrada open() para leer el contenido de un fichero

import time
from browser import document

fake_qs = '?foo=%s' %time.time()
document['zone'].value = open('file.txt'+fake_qs).read()

Fíjate en el valor aleatorio de la cadena de consulta (query) al final del nombre del fichero : Será necesario refrescar el resultado si el fichero fuente ha sido modificado entre dos llamadas diferentes

El siguiente ejemplo añade un timeout para mostrar un mensaje en caso de que el fichero no haya sido encontrado después de 4 segundos :

import time
from browser import ajax, document

def on_complete(req):
    if req.status==200 or req.status==0:
        document["zone"].value = req.text
    else:
        document["zone"].value = "error "+req.text

def err_msg():
    document["zone"].text = "El servidor no ha contestado \
        después de %s segundos" %timeout

timeout = 4

def go(url):
    req = ajax.Ajax()
    req.bind("complete", on_complete)
    req.set_timeout(timeout,err_msg)
    req.open('GET',url,True)
    req.send()

go('file.txt?foo=%s' %time.time())