[PYTHON] Mémo pour obtenir la valeur côté html-javascript avec jupyter

Chose que tu veux faire

Je veux exécuter html-javascript sur jupyter et transmettre la valeur résultante au côté python pour utilisation. (Exemple: je veux calculer côté python en utilisant les coordonnées dessinées sur javascript, etc.) En y réfléchissant, j'ai trouvé qu'il y avait un Custom-Widget et l'ai essayé.

Exemple d'utilisation

Le suivant affiche le formulaire html, et celui qui y est entré est passé du côté python et affiché. [Cet exemple](https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20Custom.html#Building-a-Custom-Widget --- Date-Picker) a été légèrement modifié, mais J'utilise javascript, auquel je ne suis pas habitué, il y a donc peut-être un meilleur moyen.

無題の図形描画.png

La source

--Créer du HTML

%%html
<!DOCTYPE html><html lang="ja">
<head><mata charset="utf-8"/><title>widget test</title></head><body>
<form name="js"><input type="text" name="txt_form" value=""><br></form><script>
require.undef('hello');
define('hello', ["@jupyter-widgets/base"], function(widgets) {
    var HelloView = widgets.DOMWidgetView.extend({
        render: function() {
            this.model.on('change:value', this.value_changed, this);
        },
        value_changed: function() {
            this.model.set('html_form', document.js.txt_form.value);//Obtenez le texte dans le formulaire ici
            this.touch();
        },
    });
    return {
        HelloView : HelloView
    };
});
</script></body></html>

--Créer des ipywidgets

import ipywidgets as widgets
from traitlets import Unicode
class HelloWidget(widgets.DOMWidget):
    _view_name = Unicode('HelloView').tag(sync=True)
    _view_module = Unicode('hello').tag(sync=True)
    value = Unicode('Hello World!').tag(sync=True)
    html_form = Unicode('').tag(sync=True)
my_widget = HelloWidget()
my_widget#Vous devez créer un widget ici
my_widget.value += 'w'#évaluer[w]En ajoutant, modifiez de force la valeur, déclenchez un événement de synchronisation et obtenez la valeur sous la forme

--Afficher les valeurs sous la forme

print(my_widget.html_form)#Afficher les valeurs dans le formulaire

Recommended Posts

Mémo pour obtenir la valeur côté html-javascript avec jupyter
J'ai essayé de démarrer avec Bitcoin Systre le week-end
Obtenez la largeur du div côté serveur avec Selenium + PhantomJS + Python
Le moyen le plus simple de démarrer avec Django
Conseils de dessin avec matplotlib côté serveur
Introduction à Python avec Atom (en route)
Comment obtenir la clé sur Amazon S3 avec Boto 3, exemple de mise en œuvre, notes
Pour générer une valeur au milieu d'une cellule avec Jupyter Notebook
Surveiller le modèle d'entraînement avec TensorBord sur Jupyter Notebook
Essayez d'obtenir le contenu de Word avec Golang
Remarques sur la façon d'utiliser Firefox avec du sélénium sous Windows
Je veux tracer les informations de localisation de GTFS Realtime sur Jupyter! (Avec ballon)
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
Comment gérer le phénomène que Python (notebook Jupyter) exécuté sur WSL devient abandonné
lire le tag qui vous est attribué dans ec2 avec boto3
Connaissances minimales pour démarrer avec le module de journalisation Python
Obtenez la version du package pour vous inscrire à PyPI à partir de Git
Comment obtenir la dernière (dernière) valeur d'une liste en Python
La façon habituelle d'ajouter un noyau avec Jupyter Notebook
Connectez le noyau Jupyter Notebook à Spyder avec Jupytext activé
Comment entrer dans l'environnement de développement Python avec Vagrant
Enregistrer des images sur le Web sur un lecteur avec Python (Colab)
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Obtenez le nom d'hôte du PC hôte avec Docker sous Linux
Récupérez la source de la page à charger indéfiniment avec python.
Authentification à deux facteurs avec Cognito + Amplify (entrez ID / PW / "valeur de code à deux facteurs" sur l'écran de connexion pour vous authentifier)
Un mémo d'un programme qui récupère une date à deux chiffres avec javascript, Ruby, Python ou un script shell.
Comment est le progrès? Continuons le boom ?? en Python
Premiers pas avec le framework Python Django sur Mac OS X
Comment obtenir l'ID de Type2Tag NXP NTAG213 avec nfcpy
[Python] Un mémo que j'ai essayé de démarrer avec asyncio
Comment personnaliser U-Boot avec une carte personnalisée pour OSD335X (Remarque)
Comment obtenir le répertoire où se trouve le EXE construit avec Pyinstaller
Comment exécuter Jupyter et Spark sur Mac avec des paramètres minimaux
[Mémo] Comment utiliser BeautifulSoup4 (2) Afficher l'en-tête de l'article avec les demandes
Comment obtenir tout le trafic via VPN avec OpenVPN sous Linux
[Python] Comment obtenir une valeur avec une clé autre que value avec Enum
Comment utiliser Jupyter sur le frontal de Spacon ITO
[Mémo] Comment utiliser BeautifulSoup4 (3) Afficher l'en-tête de l'article avec class_
Gestion des modèles d'apprentissage automatique pour éviter de se quereller avec le côté commercial
Le moyen le plus rapide d'obtenir régulièrement des images de caméra avec opencv de python
Le moyen le plus simple d'obtenir Chainer v1.5 + CUDA + cuDNN sous Windows
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
Formatage avec autopep8 sur le notebook Jupyter
Lien pour commencer avec python
Extraire la valeur maximale avec les pandas.
Premiers pas avec MicroPython (sur macOS)
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Comment obtenir la version Python
Comment démarrer avec Scrapy
Comment démarrer avec Python
Comment démarrer avec Django
[Memo] Tweet sur Twitter avec Python
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2
Procédure pour obtenir la clé KeePassX avec une ligne de commande sous OSX
Spécifiez le navigateur à utiliser avec Jupyter Notebook. Surtout Mac. (Et Vivaldi)