Exécuter Python en HTML
- Exécuter des scripts Python en HTML à l’aide de PHP
- Exécuter un script Python en HTML à l’aide de Django
Le développement Web est un vaste domaine, et les opportunités et les choses que nous pouvons faire sont infinies. Avec la complexité et la demande viennent les exigences. Lors de la création de pages Web dynamiques, nous devons souvent effectuer des tâches qui nécessitent l’aide d’un langage de programmation tel que Python ou PHP. Dans cet article, nous allons apprendre à exécuter un script Python en HTML. Nous allons parler de quelques façons dont nous pouvons y parvenir.
Exécuter des scripts Python en HTML à l’aide de PHP
Nous pouvons utiliser PHP
ou Hypertext Preprocessor
pour exécuter des scripts Python en HTML. Référez-vous au code suivant qui décrit un exemple simple.
Fichier HTML - index.html
<html>
<head>
<title>Running a Python script</title>
<?PHP
echo shell_exec("python script.py");
?>
</head>
<body>
<!-- BODY -->
</body>
</html>
Fichier Python - script.py
a = 2000
b = 21
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")
Cela imprimera ce qui suit dans la console.
a = 2000
b = 21
a + b = 2021
Si nous voulons transmettre des valeurs aux scripts Python, nous pouvons utiliser le code suivant.
Fichier HTML - index.html
<html>
<head>
<title>Running a Python script</title>
<?PHP
echo shell_exec("python script.py \"Parameter #1\" \"Parameter #2\"");
?>
</head>
<body>
<!-- BODY -->
</body>
</html>
Maintenant, le script Python se présentera comme suit.
Fichier Python - script.py
import sys
a = sys.argv[1]
b = sys.argv[2]
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")
La sortie restera la même, comme indiqué ci-dessus.
Exécuter un script Python en HTML à l’aide de Django
Django est un framework de développement Web célèbre et robuste basé sur Python. Comme il est basé sur Python, il facilite l’exécution de scripts Python à l’intérieur du HTML. Pour ce faire, nous utilisons des balises de modèle. Django a des balises de modèle prédéfinies telles que date
, linebreaks
, safe
, random
, etc. Vous pouvez en apprendre plus à leur sujet ici.
Étant donné que Django est très personnalisable, il offre aux développeurs un moyen simple de créer leurs balises de modèle personnalisées. À l’aide de balises de modèle, nous pouvons renvoyer des données aux modèles HTML, qui peuvent être intégrés à l’intérieur du modèle HTML.
Suivez les étapes suivantes pour créer une balise de modèle simple. Nous supposons que nous avons une application core
dans notre projet Django.
-
Créez un nouveau répertoire,
templatetags
, à l’intérieur de l’applicationcore
. Le répertoire de l’application devrait ressembler à ceci.core/ __init__.py models.py admin.py views.py urls.py ... templatetags/ __init__.py ...
-
Dans le dossier
templatetags
, créez un fichier Python nommémy_custom_tags.py
. -
Dans ce fichier, ajoutez le code suivant.
from django import template register = template.Library() @register.simple_tag def my_tag(): return "Hello World from my_tag() custom template tag."
Le module
my_custom_tags.py
contiendra toutes les balises du modèle personnalisé. Comme indiqué dans le code ci-dessus,my_tag
est une balise de modèle personnalisée que nous venons de créer et qui peut désormais être utilisée dans n’importe quel modèle HTML. Cette balise de modèle renverra"Hello World from my_tag() custom template tag."
cette chaîne au modèle. Nous pouvons créer encore plus de balises de modèle ici pour effectuer des tâches spécifiques et courantes. -
Maintenant que nous avons créé notre première balise de modèle, il est temps de la charger dans notre modèle HTML et de l’utiliser.
{% load static %} {% load my_custom_tags %} <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <title>Intro</title> </head> <body> <p>{% my_tag %}</p> </body> </html>
Nous chargeons d’abord le module
my_custom_tags.py
à l’intérieur du modèle. Une fois le module chargé, nous pouvons maintenant utiliser les balises du modèle définies à l’intérieur du modulemy_custom_tags
. Notez qu’il est important de charger d’abord un module avec des balises de modèle personnalisées avant d’utiliser ces balises de modèle.
Au lieu d’utiliser une balise de modèle, nous pouvons également créer un point de terminaison et envoyer une requête AJAX à ce point de terminaison pour effectuer une tâche ou obtenir des données. Nous pouvons utiliser fetch()
ou jquery
ou toute autre méthode disponible pour faire une requête AJAX. Lors de la création d’un point de terminaison pour gérer une requête AJAX, il est important de s’assurer que le point de terminaison est sécurisé et ne donne pas un accès facile aux données sensibles ou aux fonctionnalités du site Web. Puisque n’importe qui peut faire des requêtes AJAX s’il connaît le point de terminaison, nous pouvons y ajouter la validation CSRF (Cross Site Request Forgery
) et le configurer pour ne gérer que les requêtes POST. Les données POST doivent contenir le jeton CSRF.
Vous pouvez en savoir plus sur CSRF ici.