Ejecuta Python en HTML

Vaibhav Vaibhav 10 octubre 2023
  1. Ejecute Python Scripts en HTML usando PHP
  2. Ejecute el script de Python en HTML usando Django
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ón core. 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 llamado my_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ódulo my_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í.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.