Olá! Neste tutorial, vamos aprender a criar uma aplicação web utilizando Python. Python é uma linguagem de programação de alto nível, amplamente utilizada em vários contextos, incluindo aplicações web.
Antes de começarmos, é importante mencionar que existem diversas formas de criar aplicações web com Python. Neste tutorial, vamos utilizar o framework Flask. Flask é um framework leve e fácil de usar, ideal para quem está começando a aprender a criar aplicações web com Python.
Pré-requisitos
Antes de começarmos a criar a nossa aplicação web, é necessário que você tenha o seguinte:
- Python instalado em sua máquina. É recomendado utilizar a versão 3.8 ou superior. Você pode verificar a versão do Python instalada em sua máquina digitando o comando
python --version
no terminal ou prompt de comando. - Um editor de código. Existem diversas opções, como o Visual Studio Code, PyCharm e Sublime Text. Escolha aquele que mais se adapta ao seu workflow.
Instalando o Flask
Para instalar o Flask, basta abrir o terminal ou prompt de comando e digitar o seguinte comando:
pip install flask
Esse comando irá instalar o Flask e todas as dependências necessárias para que possamos utilizá-lo para criar a nossa aplicação web.
Criando o projeto
Agora que já temos o Flask instalado, vamos criar a estrutura básica do nosso projeto. Para isso, vamos criar um diretório para o projeto e, dentro dele, um arquivo chamado app.py
. O arquivo app.py
será o ponto de partida da nossa aplicação.
Abra o terminal ou prompt de comando e digite os seguintes comandos:
mkdir meu_projeto
cd meu_projeto
touch app.py
Esses comandos criarão um diretório chamado meu_projeto
e, dentro dele, um arquivo chamado app.py
.
Criando a primeira rota
Agora que já criamos a estrutura básica do nosso projeto, vamos criar a nossa primeira rota. Em uma aplicação web, uma rota é um endereço específico que, quando acessado pelo usuário, retorna algum conteúdo. Por exemplo, quando o usuário acessa a rota /home
, ele pode ver a página principal do site.
Para criar uma rota no Flask, precisamos importar o módulo Flask
e criar uma instância dele. Em seguida, usamos o método route
para indicar a rota que queremos criar e a função que será executada quando a rota for acessada.
No arquivo app.py
, adicione o seguinte código:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Olá, mundo!'
Nesse código, estamos importando o módulo Flask
e criando uma instância dele. Em seguida, criamos a rota /
usando o decorador @app.route
. Quando o usuário acessar essa rota, a função hello_world
será executada e o texto “Olá, mundo!” será retornado.
Executando a aplicação
Agora que já criamos a nossa primeira rota, vamos executar a aplicação para verificar se tudo está funcionando corretamente. No arquivo app.py
, adicione o seguinte código:
if __name__ == '__main__':
app.run()
Esse código fará com que a aplicação seja iniciada quando o arquivo for executado. Para executar o arquivo, basta abrir o terminal ou prompt de comando, navegar até o diretório do projeto e digitar o seguinte comando:
python app.py
A aplicação será iniciada e você pode acessá-la pelo endereço http://localhost:5000
, que é o endereço padrão do Flask. Se tudo estiver funcionando corretamente, você verá a mensagem “Olá, mundo!” ao acessar esse endereço.
Criando páginas HTML
Até agora, nossa aplicação só retorna uma mensagem de texto simples. Mas, na maioria das vezes, queremos que nossas aplicações retornem páginas HTML com conteúdo mais elaborado.
Para criar páginas HTML no Flask, podemos usar templates. Um template é um arquivo HTML que possui marcadores especiais que são substituídos pelo Flask com o conteúdo desejado. Dessa forma, podemos criar um layout básico e reutilizá-lo em várias páginas da aplicação, alterando apenas o conteúdo específico de cada página.
Para usar templates no Flask, precisamos importar o módulo render_template
e, em seguida, usar a função render_template
passando o nome do template e, opcionalmente, os parâmetros que queremos passar para o template.
Por exemplo, vamos criar um template chamado index.html
que possui uma mensagem de boas-vindas. Crie um diretório chamado templates
no mesmo nível do arquivo app.py
e, dentro dele, crie um arquivo chamado index.html
com o seguinte conteúdo:
<html>
<head>
<title>Meu site</title>
</head>
<body>
<h1>Bem-vindo ao meu site!</h1>
</body>
</html>
Agora, vamos criar uma rota que retorna essa página. No arquivo app.py
, adicione o seguinte código:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
Agora, quando o usuário acessar a rota /
, a página index.html
será retornada.
Passando parâmetros para o template
Às vezes, queremos personalizar o conteúdo de nossas páginas de acordo com os parâmetros passados para elas. Por exemplo, podemos criar uma página de perfil que mostra informações específicas de um usuário, como o nome e a idade.
Para passar parâmetros para o template, basta passá-los como argumentos da função render_template
. No template, podemos acessar esses parâmetros usando a notação de chaves duplas, como {{ nome }}
ou {{ idade }}
.
Vamos criar um template chamado perfil.html
que mostra o nome e a idade de um usuário. Adicione o seguinte código ao arquivo templates/perfil.html
:
<html>
<head>
<title>Perfil de {{ nome }}</title>
</head>
<body>
<h1>Perfil de {{ nome }}</h1>
<p>Idade: {{ idade }}</p>
</body>
</html>
Agora, vamos criar uma rota que retorna essa página com os parâmetros desejados. No arquivo app.py
, adicione o seguinte código:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/perfil/<nome>/<int:idade>')
def perfil(nome, idade):
return render_template('perfil.html', nome=nome, idade=idade)
if __name__ == '__main__':
app.run()
Agora, quando o usuário acessar a rota /perfil/<nome>/<idade>
, a página perfil.html
será retornada com os valores de nome
e idade
preenchidos. Por exemplo, ao acessar a rota /perfil/João/30
, a página exibirá “Perfil de João” e “Idade: 30”.
Formulários
Muitas vezes, queremos que nossas aplicações permitam que os usuários enviam dados para o servidor, como quando preenchem um formulário de login ou de cadastro. Para isso, podemos usar o elemento form
do HTML e o método POST
do HTTP.
O elemento form
possui um atributo action
que indica a rota para a qual os dados serão enviados e um atributo method
que indica o método HTTP a ser usado. O método POST
é usado para enviar dados para o servidor e é geralmente usado para alterar o estado da aplicação, enquanto o método GET
é usado para obter dados do servidor e é geralmente usado para consultas.
Vamos criar um formulário de login simples. Adicione o seguinte código ao arquivo templates/login.html
:
<html>
<head>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<form action="/login" method="POST">
<label for="username">Usuário:</label><br>
<input type="text" id="username" name="username"><br>
<label for="password">Senha:</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Entrar">
</form>
</body>
</html>
No formulário acima, criamos um campo de texto para o nome de usuário, um campo de senha e um botão de envio. O atributo action
do formulário indica que os dados serão enviados para a rota /login
e o atributo method
indica que o método HTTP POST
será usado.
Para tratar o formulário de login, precisamos criar uma rota que recebe os dados do formulário e verifica se as credenciais são válidas. No arquivo app.py
, adicione o seguinte código:
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
# Recebendo os dados do formulário
username = request.form['username']
password = request.form['password']
# Verificando se as credenciais são válidas
if username == 'admin' and password == 'senha':
return 'Usuário logado com sucesso!'
else:
return 'Usuário ou senha inválidos.'
else:
return render_template('login.html')
if __name__ == '__main__':
app.run()
Nesse código, criamos a rota /login
que aceita os métodos GET
e POST
. Quando o usuário acessa a rota com o método GET
, o formulário de login é exibido. Quando o usuário submete o formulário com o método POST
, os dados são recebidos e verificados. Se as credenciais forem válidas, uma mensagem de sucesso é exibida. Caso contrário, uma mensagem de erro é exibida.
Conclusão
Neste tutorial, aprendemos como criar uma aplicação web com Python utilizando o framework Flask. Vimos como criar rotas, usar templates e formulários para interagir com o usuário.
Existem muitas outras coisas que podemos fazer com o Flask, como trabalhar com banco de dados, enviar e-mails e proteger rotas com autenticação. Para saber mais sobre o Flask, consulte a documentação oficial.