Skip to content

Latest commit

 

History

History
 
 

brython

Brython Examples

This set of examples is intended to accompany the Real Python tutorial Brython: Python in Your Browser.

Most of the examples are found in the article and others are extras that did not fit in the scope of the article.

async

aio

ajax

fetch

Base64

Examples demonstrating how to access the DOM API starting from an app that takes a string as input, generates the Base64-encoded value of the string, and displays it on the page. Each example is slightly different as stated in the following sections.

embed

  • The application is a single index.htm with embedded Python code. It can be executed by opening the file with an internet browser. Starting a local web server is not required
  • The user enters the string to be encoded through the standard prompt message box of the browser.
  • This example is the same as the following one but with the Python code embedded in HTML.
  • It is not in the tutorial in this format, but relates to https://realpython.com/brython-python-in-browser/#the-dom-api-in-brython

sep

  • This project is the same as embed, but the Python code is a separate file, main.py.
  • A separate Python file requires starting a local server to test this example (python3 -m http.server).

form

storage

  • This example is an extension of the form project demonstrating how to use localstorage and save the data between page reload. It requires to start a local web server (python3 -m http.server).
  • The data is saved as a JSON document associated with a single key of the local storage. The performance is degraded as you add more elements in the JSON file.
  • This example is documented in the tutorial: https://realpython.com/brython-python-in-browser/#browser-web-api

storage_perf

  • In an attempt to overcome the performance issue of the storage example, this example saves each base64 encoded value into a separate key. The key is the original string entered by the user.
  • This example is an extra and not described in the tutorial but is related to https://realpython.com/brython-python-in-browser/#browser-web-api

chrome_extensions

hello_js

hello_py

console

  • Brython console as an iframe embedded in an HTML file. Does not require to run a local web server. Opening index.html with a browser is sufficient to test it.
  • This is an extra not described in the tutorial.
  • Check out https://brython.info/console.html to see it online.

github_install

hashes

  • In the same vein as the Base64 encode application, this one generates the hash, SHA-1, SHA-256 or SHA-512, of a string. It adds a dropdown to select the desired algorithm (SHA-1, SHA-256, or SHA-512).
  • This serves as the basis for a translation to the same application with Vue.js (see vuejs project below).
  • It requires a local web server.
  • This is an extra not described in the tutorial, but serves the bases as the Vue.js example and you can read about it at https://realpython.com/brython-python-in-browser/#web-ui-framework

import

import_js

  • Expands on the import example by allowing the creation of brython_module.js generated with brython-cli --modules.
  • This requires a Python virtual environment with Brython installed (pip install brython) to have brython-cli available in the PATH. The generated files are available in the sub-directory dist_example.
  • You can open dist_example/index.html with a browser, without the need for a webserver to run locally, because the dependencies are only JS files (brython.js and brython_modules.js).
  • You can read more about this approach in the tutorial at https://realpython.com/brython-python-in-browser/#reduce-import-size

npm_install

pip_install

sha256

  • Application to generate the SHA-256 hash of a given string. The data is stored as JSON in a key of the localstorage to preserve the calculations between page reloads.
  • This is an extra not described in the tutorial, but serves the basis of the Vue.js example. You can read about it at https://realpython.com/brython-python-in-browser/#web-ui-framework

vuejs

wasm

  • An example demonstrating the generation of a WASM file, the loading of the file, and usage of the function from Brython. The source code of the WASM file is Rust.
  • This requires you to have the Rust compiler installed on a local machine. Check the details in the Brython tutorial. A local web server is needed as it requires loading the wasm file.
  • The web server can be started in the directory wasm/op/web. The debug wasm file is included. This is only for demonstration. The add function does not handle negative and big integers.
  • Documented in the tutorial at https://realpython.com/brython-python-in-browser/#webassembly

zero_install

  • An example demonstrating a minimum Brython project. The Brython engine is fetched from a CDN, and the Python code is embedded on the page. No need for a local web server, no need for a local Python environment either, just a browser with JavaScript enabled :-)
  • In the tutorial at https://realpython.com/brython-python-in-browser/#cdn-server-install