Python e HTML são linguagens com propósitos diferentes, mas quando combinadas, elas se tornam a base para a maioria dos sites e aplicações web que usamos todos os dias. Pense no HTML como o esqueleto e a pele de um site, e no Python como o cérebro que faz tudo funcionar por trás das cenas.
---HTML (HyperText Markup Language) é a linguagem padrão para criar páginas web. Ele define a estrutura e o conteúdo de uma página. Imagine-o como o projeto arquitetônico de uma casa, especificando onde as paredes, janelas e portas estarão.
<!DOCTYPE html>
<html>
<head>
<title>Minha Primeira Página</title>
</head>
<body>
<h1>Bem-vindo ao meu site!</h1>
<p>Este é um parágrafo de exemplo.</p>
<a href="https://www.google.com">Ir para o Google</a>
</body>
</html>
<h1>
é um título principal.<p>
é um parágrafo.<a>
é um link.Quando você abre esse código em um navegador, ele renderiza a página com o título, o parágrafo e o link. O HTML é estático, ou seja, ele não faz nada por si só além de exibir o conteúdo.
---Python é uma linguagem de programação versátil e poderosa que pode ser usada para muitas coisas, incluindo o desenvolvimento web. No contexto da web, Python é frequentemente usado no "backend" (o lado do servidor), onde ele lida com a lógica, o processamento de dados e a interação com bancos de dados.
nome = "Mundo"
mensagem = f"Olá, {nome}!"
print(mensagem)
Este código Python simplesmente define uma variável nome
, cria uma mensagem personalizada e a imprime. Ele é dinâmico e pode realizar cálculos, tomar decisões e interagir com outros sistemas.
Aqui é onde a mágica acontece! Python e HTML se unem através de frameworks web como Flask ou Django.
Vamos usar um micro-framework chamado Flask para ilustrar como Python gera HTML.
Passo 1: Instale o Flask (se ainda não tiver):
pip install Flask
Passo 2: Crie um arquivo Python (por exemplo, app.py):
from flask import Flask, render_template_string
from datetime import datetime
app = Flask(__name__)
@app.route('/')
def home():
nome_usuario = "Visitante" # Em uma aplicação real, isso viria de um banco de dados ou login
# Função auxiliar para pegar a hora atual (exemplo)
def get_current_time():
return datetime.now().strftime("%H:%M:%S em %d/%m/%Y")
html_content = f"""
<!DOCTYPE html>
<html>
<head>
<title>Saudação Personalizada</title>
</head>
<body>
<h1>Olá, {nome_usuario}!</h1>
<p>Bem-vindo à sua página personalizada.</p>
<p>A data e hora atual é: {get_current_time()}</p>
</body>
</html>
"""
return render_template_string(html_content)
if __name__ == '__main__':
app.run(debug=True)
Passo 3: Salve e Execute o arquivo app.py:
python app.py
Você verá uma mensagem como * Running on http://127.0.0.1:5000/
. Abra essa URL no seu navegador.
home()
no seu código Python.nome_usuario
(que poderia vir de um banco de dados, por exemplo).nome_usuario
e a data/hora atual (obtida pela função get_current_time()
) diretamente no nosso HTML.render_template_string
pega essa string HTML e a envia de volta ao navegador.nome_usuario
para "Maria" no código Python e reiniciasse o servidor, a página exibida mudaria para "Olá, Maria!". Isso mostra o poder do Python para gerar HTML dinamicamente.<!DOCTYPE html>
<html>
<head>
<title>Saudação com Template</title>
</head>
<body>
<h1>Olá, {{ nome }}!</h1>
<p>Você está acessando a página agora: {{ data_hora }}.</p>
</body>
</html>
E no Python (Flask):
from flask import Flask, render_template
from datetime import datetime
app = Flask(__name__)
@app.route('/template')
def home_template():
nome_usuario = "Aventureiro"
data_atual = datetime.now().strftime("%H:%M:%S em %d/%m/%Y")
return render_template('index.html', nome=nome_usuario, data_hora=data_atual)
Aqui, o Python envia os valores de nome
e data_hora
para o template index.html
, e o Jinja2 os insere nos locais indicados por {{ }}
. Isso torna o código muito mais limpo e organizado.
Juntos, eles permitem que você crie páginas web que não são apenas bonitas, mas também interativas, personalizadas e capazes de lidar com dados e usuários de forma dinâmica.
---