Brython (Browser Python) is an implementation of Python 3 running in the browser, with an interface to the DOM elements and events.
Here is a simple example of an HTML page running Python:
<html>
<head>
<script type="text/javascript" src="/path/to/brython.js"></script>
</head>
<body onload="brython()">
<script type="text/python">
from browser import document, alert
def echo(event):
alert(document["zone"].value)
document["mybutton"].bind("click", echo)
</script>
<input id="zone"><button id="mybutton">click !</button>
</body>
</html>To use Brython, all there is to do is:
- Load the script brython.js.
- Run the function
brython()on page load, like<body onload="brython()">. - Write Python code inside tags
<script type="text/python">.
Brython supports the syntax of Python 3, including comprehensions, generators, metaclasses, imports, etc. and many modules of the CPython distribution.
Since version 3.8.0, Brython implements the Python version of the same major / minor version number.
It includes libraries to interact with DOM elements and events, and with existing Javascript libraries such as jQuery, D3, Highcharts, Raphael etc. It supports the latest specs of HTML5/CSS3, and can use CSS Frameworks like Bootstrap3, LESS, SASS etc.
The most simple way to get started, without anything to install, is to use the distribution available online through jsDelivr. You can choose the latest stable release :
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3.10.5/brython.min.js">
</script>The previous code will allow you to use raw python code, but if you import modules from the standard library you have to load a single javascript file with the available stdlib:
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3.10.5/brython_stdlib.js">
</script>jsDelivr supports version ranges, so if you want the latest of the 3.10.x versions:
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3.10/brython.min.js">
</script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3.10/brython_stdlib.js">
</script>or the latest of the 3.x.y versions:
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3/brython.min.js">
</script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/brython@3/brython_stdlib.js">
</script>If you want to use the latest development version, you can load these scripts instead:
<script src="https://raw.githack.com/brython-dev/brython/master/www/src/brython.js"></script>
<script src="https://raw.githack.com/brython-dev/brython/master/www/src/brython_stdlib.js"></script>If you want to test Brython online you can visit the following:
You can start by reading the official Brython tutorial.
Full documentation is available on the official site. You can read the docs in English, French and Spanish.
The most updated docs usually are the English and French versions so if you want to be up-to-date, please, use these versions.
Curious about how Brython works ?
A tutorial explains how to build Android applications with Brython.
