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 aplicativocore
. 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 chamadomy_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ódulomy_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.