VersionIntroductionInstallationLimitations du protocole "file"Questions fréquemment poséesSyntaxe, mots-clés et fonctions intégréesDistribution standardImplémentation de importPackages BrythonInterface avec le navigateur
Introduction - API DOM
Créer un document Accéder aux éléments Attributs, propriétés et méthodes Evénements Evénements souris Evénements clavier Evénements focus Evénements pour glisser-déposer Chaine de requête Interactions avec Javascript Modules intégrés propres à Brython
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 Widgets browser.widgets.dialog browser.widgets.menu interpreter javascript Travailler avec BrythonRecettes
Salut !
Insérer du contenu dans un élément Mise en forme HTML (gras, italique...) Table HTML Attacher / détacher des événements Gérer la sélection d'options dans un SELECT Glisser-déposer Obtenir le contenu d'un élément Lire le contenu d'un fichier Stocker des objets localement Exemple de onmouseover |
Implémentation de importVous pouvez installer des modules ou des paquetages Python dans votre application, en les mettant à la racine de l'application ou dans des répertoires comportant un fichier __init__.py. Noter que les modules doivent être encodés en utf-8 ; la déclaration d'encodage en début de module n'est pas prise en compte. Par exemple l'application peut être composée des fichiers et répertoires suivants :app.html brython.js brython_modules.js brython_stdlib.js index.html users.py utils.py + app __init__.py records.py tables.pyUn script Python dans app.html peut exécuter les imports Avertissement : ceci ne fonctionne pas si le script est ouvert dans le navigateur par le menu Fichier / Ouvrir. En effet, comme le navigateur n'a pas accès directement au système de fichiers, les modules sont chargés par un appel Ajax, et les appels Ajax ne sont pas possibles quand la page est ouverte de cette façon. Pour que ces imports fonctionnent, il faut ouvrir la page en lançant un serveur web permettant d'accéder à la page. Pour des tests en local, il suffit d'exécuterimport users import app.records python -m http.server dans le répertoire où se trouve la page et
de saisir localhost:8000/app.html dans la barre d'adresse du navigateur.
Si la bibliothèque standard a été insérée dans la page par
<script type="text/javascript" src="brython_stdlib.js"></script>le script peut aussi exécuter Pour importer des modules ou des paquetages, Brython utilise le même mécanisme que CPython : pour résoudre "import X", le programme recherche un fichier dans plusieurs emplacements :import datetime import re
id :
<script type="text/python" id="module">def hello(): return "world"</script> <script type="text/python">from browser import document import module document.body <= module.hello()</script> OptimisationLe mécanisme décrit ci-dessus présente deux inconvénients :
pip , vous pouvez
générer un fichier brython_modules.js qui ne contient que les modules
utilisés par l'application.
Pour cela il faut ouvrir une console système, se positionner dans le
répertoire de l'application, et exécuter
brython-cli make_modulesA noter que ce programme analyse le code Brython contenu dans tous les scripts, modules et pages HTML qui se trouvent dans le répertoire et ses sous-répertoires. La version de CPython utilisée doit donc être compatible avec le code Brython : par exemple si ce code inclut des match / case , il
faut au minimum CPython 3.10, sinon le programme détectera des erreurs de
syntaxe.
Vous pouvez ensuite remplacer toutes les occurrences de
<script type="text/javascript" src="brython_stdlib.js"></script> par <script type="text/javascript" src="brython_modules.js"></script> |