Ejecuta Python en HTML
El desarrollo web es un campo vasto y hay un sinfín de oportunidades y cosas que podemos hacer. Con la complejidad y la demanda vienen los requisitos. Al construir páginas web dinámicas, a menudo tenemos que realizar tareas que requieren la ayuda de algún lenguaje de programación como Python o PHP. En este artículo, aprenderemos cómo ejecutar un script de Python en HTML. Hablaremos de algunas formas en las que podemos lograrlo.
Ejecute Python Scripts en HTML usando PHP
Podemos utilizar PHP
o Hypertext Preprocessor
para ejecutar scripts de Python en HTML. Consulte el siguiente código que muestra un ejemplo simple.
Archivo HTML - index.html
<html>
<head>
<title>Running a Python script</title>
<?PHP
echo shell_exec("python script.py");
?>
</head>
<body>
<!-- BODY -->
</body>
</html>
Archivo Python - script.py
a = 2000
b = 21
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")
Esto imprimirá lo siguiente en la consola.
a = 2000
b = 21
a + b = 2021
Si queremos pasar algunos valores a los scripts de Python, podemos usar el siguiente código.
Archivo 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>
Ahora, la secuencia de comandos de Python se verá de la siguiente manera.
Archivo 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 salida seguirá siendo la misma, como se muestra arriba.
Ejecute el script de Python en HTML usando Django
Django es un marco de desarrollo web famoso y robusto basado en Python. Dado que está basado en Python, facilita la ejecución de scripts de Python dentro del HTML. La forma en que lo hacemos es mediante el uso de etiquetas de plantilla. Django tiene algunas etiquetas de plantilla preconstruidas como date
, linebreaks
, safe
, random
, etc. Puede obtener más información sobre ellas aquí.
Dado que Django es muy personalizable, ofrece a los desarrolladores una manera fácil de crear sus etiquetas de plantilla personalizadas. Usando etiquetas de plantilla, podemos devolver datos a plantillas HTML, que se pueden incrustar dentro de la plantilla HTML.
Siga los siguientes pasos para crear una etiqueta de plantilla simple. Suponemos que tenemos una aplicación central
en nuestro proyecto Django.
-
Crea un nuevo directorio,
templatetags
, dentro de la aplicacióncore
. El directorio de la aplicación debería verse así.core/ __init__.py models.py admin.py views.py urls.py ... templatetags/ __init__.py ...
-
Dentro de la carpeta
templatetags
, crea un archivo Python llamadomy_custom_tags.py
. -
Dentro de este archivo, agrega el siguiente código.
from django import template register = template.Library() @register.simple_tag def my_tag(): return "Hello World from my_tag() custom template tag."
El módulo
my_custom_tags.py
contendrá todas las etiquetas de plantilla personalizadas. Como se muestra en el código anterior,my_tag
es una etiqueta de plantilla personalizada que acabamos de crear y ahora se puede usar dentro de cualquier plantilla HTML. Esta etiqueta de plantilla devolverá"Hello World from my_tag() custom template tag."
Esta cadena a la plantilla. Podemos crear aún más etiquetas de plantilla aquí para realizar tareas específicas y comunes. -
Ahora que hemos creado nuestra primera etiqueta de plantilla, es hora de cargarla dentro de nuestra plantilla HTML y usarla.
{% 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>
Primero cargamos el módulo
my_custom_tags.py
dentro de la plantilla. Una vez que el módulo está cargado, ahora podemos usar las etiquetas de plantilla definidas dentro del módulomy_custom_tags
. Tenga en cuenta que es importante cargar primero un módulo con etiquetas de plantilla personalizadas antes de usar esas etiquetas de plantilla.
En lugar de usar una etiqueta de plantilla, también podemos crear un punto final y hacer una solicitud AJAX a ese punto final para realizar alguna tarea u obtener algunos datos. Podemos usar fetch()
o jquery
o cualquier otro método disponible para realizar una solicitud AJAX. Al crear un punto final para manejar una solicitud AJAX, es importante asegurarse de que el punto final sea seguro y no brinde fácil acceso a datos confidenciales o características del sitio web. Dado que cualquiera puede realizar solicitudes AJAX si conoce el punto final, podemos agregarle la validación CSRF (Cross Site Request Forgery
) y configurarlo para que maneje solo solicitudes POST. Los datos POST deben contener el token CSRF.
Puede obtener más información sobre CSRF aquí.