Execute Python em HTML

Vaibhav Vaibhav 10 outubro 2023
  1. Execute scripts Python em HTML usando PHP
  2. Execute o script Python em HTML usando Django
Execute Python em HTML

O desenvolvimento da Web é um campo vasto e existem inúmeras oportunidades e coisas que podemos fazer. Com a complexidade e a demanda, vêm os requisitos. Ao construir páginas da web dinâmicas, geralmente temos que realizar tarefas que requerem a ajuda de alguma linguagem de programação, como Python ou PHP. Neste artigo, aprenderemos como executar um script Python em HTML. Falaremos sobre algumas maneiras pelas quais podemos conseguir isso.

Execute scripts Python em HTML usando PHP

Podemos usar PHP ou Hypertext Preprocessor para executar scripts Python em HTML. Consulte o código a seguir que descreve um exemplo simples.

Arquivo HTML - index.html

<html>
    <head>
        <title>Running a Python script</title>
        <?PHP
        echo shell_exec("python script.py");
        ?>
        </head>
    <body>
        <!-- BODY -->
    </body>
</html>

Arquivo Python - script.py

a = 2000
b = 21
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")

Isso imprimirá o seguinte no console.

a = 2000
b = 21
a + b = 2021

Se quisermos passar alguns valores para os scripts Python, podemos usar o código a seguir.

Arquivo 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>

Agora, o script Python terá a seguinte aparência.

Arquivo 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}")

A saída permanecerá a mesma, conforme mostrado acima.

Execute o script Python em HTML usando Django

Django é um framework de desenvolvimento web baseado em Python famoso e robusto. Por ser baseado em Python, torna mais fácil executar scripts Python dentro do HTML. A maneira como fazemos isso é usando tags de modelo. Django tem algumas tags de template pré-construídas como date, linebreaks, safe, random, etc. Você pode aprender mais sobre elas aqui.

Como o Django é muito personalizável, ele oferece aos desenvolvedores uma maneira fácil de criar suas tags de template customizadas. Usando tags de template, podemos retornar dados para templates HTML, que podem ser embutidos dentro do template HTML.

Siga as etapas a seguir para criar uma tag de modelo simples. Estamos assumindo que temos um aplicativo core em nosso projeto Django.

  • Crie um novo diretório, templatetags, dentro do aplicativo core. O diretório do aplicativo deve ser parecido com isto.
    core/
    	__init__.py
        models.py
        admin.py
    	views.py
        urls.py
        ...
        templatetags/
    		__init__.py
    		...
    
  • Dentro da pasta templatetags, crie um arquivo Python chamado my_custom_tags.py.
  • Dentro deste arquivo, adicione o seguinte código.
    from django import template
    
    register = template.Library()
    
    
    @register.simple_tag
    def my_tag():
        return "Hello World from my_tag() custom template tag."
    

    O módulo my_custom_tags.py conterá todas as tags de modelo personalizado. Conforme mostrado no código acima, my_tag é uma tag de modelo personalizado que acabamos de criar e agora pode ser usada dentro de qualquer modelo HTML. Esta tag de modelo retornará "Hello World from my_tag() custom template tag." Esta string para o modelo. Podemos criar ainda mais tags de modelo aqui para realizar tarefas específicas e comuns.

  • Agora que criamos nosso primeiro template tag, é hora de carregá-lo dentro do nosso template HTML e usá-lo.
    {% 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>
    

    Primeiro carregamos o módulo my_custom_tags.py dentro do modelo. Uma vez que o módulo é carregado, podemos agora usar as tags de template definidas dentro do módulo my_custom_tags. Observe que é importante carregar primeiro um módulo com tags de modelo personalizado antes de usar essas tags de modelo.

Em vez de usar uma tag de modelo, também podemos criar um ponto de extremidade e fazer uma solicitação AJAX a esse ponto de extremidade para executar alguma tarefa ou obter alguns dados. Podemos usar fetch() ou jquery ou qualquer outro método disponível para fazer uma solicitação AJAX. Ao criar um ponto de extremidade para lidar com uma solicitação AJAX, é importante garantir que o ponto de extremidade seja seguro e não forneça acesso fácil a dados confidenciais ou recursos do site. Uma vez que qualquer pessoa pode fazer solicitações AJAX se souberem o ponto final, podemos adicionar validação CSRF (Cross Site Request Forgery) a ela e configurá-la para lidar apenas com solicitações POST. Os dados POST devem conter o token CSRF.

Você pode aprender mais sobre CSRF aqui.

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.