Bonjour, je m'appelle Kamibayashi, ryo_grid d'Ory Lab (http://orylab.com).
Eh bien, tout le monde! Écrivez-vous JavaScript! Je l'écris aussi. Cependant, j'écris du code en C, Java, Ruby, Python, etc. depuis longtemps, donc je ne suis pas familier avec les spécifications du langage JavaScript.
Ainsi, lorsque j'ai recherché une option pour utiliser un langage autre que JS sur le front-end Web, j'ai trouvé un système de traitement Python implémenté dans le navigateur JS appelé Brython (= fonctionne dans le navigateur), alors je l'ai essayé. C'était.
Brython - A Python 3 implementation for client-side web programming
J'ai écrit en errant dans la mer du net. Le thème est le calcul de l'IMC, qui est une tâche courante pour les débutants en programmation.
Il semble que le HTML puisse être écrit comme ça.
index.html
<!DOCTYPE html>
<html>
<head>
<title>Calculer l'IMC avec Brython</title>
<meta charset="utf-8">
<script src="static/brython.js"></script>
<script src="static/brython_stdlib.js"></script>
</head>
<body onload="brython()">
<script type="text/python" src="static/bmi.py"></script>
<h1>Calculer l'IMC avec Brython</h1>
<p>la taille(Mètre)
<input type="text" id="height" />
<p>poids(kilogramme)
<input type="text" id="weight" />
<br><button id="execute">C'est un calcul!</button>
<div id="result"></div>
</body>
</html>
Chargez brython.js, qui correspond au système de traitement, et brython_stdlib.js, qui correspond probablement à la bibliothèque Python standard, dans la section head. Ensuite, appelons la méthode brython () lors du chargement de la section body. Après cela, mettez un formulaire de saisie et un bouton, et mettez une balise div avec l'ID "result" pour afficher le résultat par opération DOM.
Écrivez le code Python dans un fichier séparé et chargez-le avec la balise de script type = "text / python". De plus, bien qu'il s'agisse d'un fichier séparé ici, il semble que vous puissiez également écrire du code Python comme écrire JS solidement en HTML.
Le fichier Python chargé ci-dessus ressemble à ceci: C'est Python tel qu'il est grammaticalement.
bmi.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from browser import document
def calc_bmi():
weight = float(document["weight"].value)
height = float(document["height"].value)
bmi = str(weight/(height*height))
rslt = document["result"]
rslt.text = bmi
execute_btn = document["execute"]
execute_btn.bind("click", calc_bmi)
Le processus que nous faisons est de stocker le DOM du bouton avec l'id "execute" dans la variable execute_btn, et d'enregistrer la fonction calc_bmi comme processus à déclencher à l'événement "click" via celui-ci. Il semble que le DOM puisse être obtenu avec le module document du package du navigateur.
La fonction calc_bmi obtient la valeur d'entrée du formulaire, calcule l'IMC et définit le résultat à la balise div id = "result".
Et si tu bouges ça,
Je me sens comme cela. Ça a marché!
J'ai mis un ensemble de ce code à https://github.com/ryogrid/LearnBrython. J'ai également inclus app.py, qui fournit la fonction de serveur Web, donc si vous avez un environnement python, vous pouvez l'exécuter immédiatement avec ce qui suit.
git clone https://github.com/ryogrid/LearnBrython.git cd LearnBrython pip install flask python app.py => Let's access http://localhost:5000/
Le code que j'ai écrit ci-dessus n'est pas très semblable à Python, mais officiellement, il semble que toute la syntaxe Python soit prise en charge.
https://brython.info/static_doc/en/syntax.html
Il semble qu'une bonne quantité de bibliothèques standard soient également prises en charge. C'est incroyable.
https://brython.info/static_doc/en/stdlib.html
J'espère que vous jetez un œil à la galerie officielle,
Il semble que le traitement intensif fonctionne correctement. Donc, je pense que ce n'est pas grave si ce n'est pas une application qui se soucie vraiment des performances.
De plus, il est mentionné au début de la FAQ, donc si vous voulez en savoir plus, je pense que vous devriez vous y référer.
https://brython.info/static_doc/en/faq.html
En regardant l'implémentation Brython sur github, il semble qu'elle s'exécute après la compilation (traduction) JIT vers JS, pas un interpréteur. Technique de puissance!
https://github.com/brython-dev/brython/blob/master/www/src/py2js.js
Récemment, asm.js et WebAssembly, qui peuvent être appelés assembleurs pour les navigateurs, sont apparus. En générant du code d'exécution avec ceux-ci, il semble que des performances proches de celles une fois compilées en code natif seront obtenues.
Explication détaillée du langage de bas niveau asm.js et WebAssembly
Brython peut éventuellement prendre en charge de telles choses. Gardez un œil dessus à l'avenir.
J'ai essayé Python (Brython) en tant que langage d'implémentation web front-end au lieu de JavaScript. J'approfondis aussi un peu Brython.
Il est difficile de juger s'il peut être utilisé dans des produits commerciaux, mais pourquoi ne pas l'essayer en tant que professionnel amateur? Let's enjoy!
PS: Je ne l'ai pas mentionné cette fois, mais il semble y avoir une implémentation Python dans le navigateur JS autre que Brython, donc si vous êtes intéressé, veuillez vous référer à ce qui suit.
http://stromberg.dnsalias.org/~strombrg/pybrowser/python-browser.html