O desenvolvimento web é uma das áreas mais empolgantes para quem deseja aprender programação. Com Python, criar aplicações web robustas e eficientes é acessível, graças a frameworks poderosos como Flask e Django. Neste tutorial, vamos explorar os conceitos essenciais do desenvolvimento web com Python e criar um projeto prático usando Flask, incluindo o deploy para produção.
Índice do Tutorial
O que é Desenvolvimento Web com Python?
Por que Escolher Python para Desenvolvimento Web?
Python é amplamente utilizado no desenvolvimento web devido a:
- Facilidade de Uso: A sintaxe simples e legível torna o aprendizado fácil.
- Comunidade Ativa: Milhares de desenvolvedores compartilham soluções e boas práticas.
- Frameworks Poderosos: Ferramentas como Flask e Django agilizam o processo.
- Integração com Tecnologias Modernas: Python pode ser usado para integrar inteligência artificial, análise de dados e outras tecnologias com aplicações web.
Pré-requisitos para Começar
Antes de seguir este tutorial, certifique-se de que você:
- Possui o Python instalado.
- Tem conhecimento básico sobre a linguagem (veja os tutoriais anteriores da série).
- Sabe como usar um ambiente virtual em Python.
Estrutura do Tutorial
- Configuração do Ambiente e Introdução ao Flask
- Criação de uma Aplicação Web Básica
- Roteamento e Templates em Flask
- Conectando o Back-End ao Banco de Dados
- Gerenciando Formulários e Validações
- Estilizando com HTML e CSS
- Deploy de Produção em uma Plataforma Gratuita
Configuração do Ambiente e Introdução ao Flask
Instalação do Flask
Flask é um framework leve que permite criar aplicações rapidamente. Para instalá-lo, siga os passos:
- Crie um ambiente virtual:
python -m venv env
source env/bin/activate # Linux/Mac
env\Scripts\activate # Windows
- Instale o Flask:
pip install flask
Estrutura Inicial do Projeto
Organize seu projeto com a seguinte estrutura:
meu_projeto/
│
├── app.py # Arquivo principal do aplicativo
├── templates/ # Diretório para templates HTML
│ ├── base.html
│ └── index.html
├── static/ # Diretório para arquivos estáticos (CSS/JS)
│ └── styles.css
└── requirements.txt # Arquivo para listar dependências
Criação de uma Aplicação Web Básica
Crie o arquivo app.py
e adicione o seguinte código:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html")
if __name__ == "__main__":
app.run(debug=True)
Crie o arquivo templates/index.html
:
Minha Aplicação Web
Bem-vindo à Minha Aplicação Web!
Execute o aplicativo:
python app.py
Acesse http://127.0.0.1:5000 no navegador para visualizar.
Roteamento e Templates em Flask
Roteamento
Adicione mais rotas para expandir sua aplicação:
@app.route("/sobre")
def sobre():
return render_template("sobre.html")
Crie o arquivo templates/sobre.html
:
Sobre
Sobre Nossa Aplicação
Esta é uma aplicação feita com Flask.
Templates com Jinja2
O Flask usa o motor de templates Jinja2 para integrar Python no HTML.
Adicione ao index.html
:
{% for item in ["Página Inicial", "Sobre", "Contato"] %}
- {{ item }}
{% endfor %}
Conectando o Back-End ao Banco de Dados
Vamos usar SQLite como banco de dados. Adicione ao app.py
:
import sqlite3
def criar_banco():
conn = sqlite3.connect('site.db')
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
titulo TEXT NOT NULL,
conteudo TEXT NOT NULL
)
""")
conn.commit()
conn.close()
Modifique a função home()
para exibir dados:
@app.route("/")
def home():
conn = sqlite3.connect('site.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM posts")
posts = cursor.fetchall()
conn.close()
return render_template("index.html", posts=posts)
Gerenciando Formulários e Validações
Adicione um formulário ao index.html
:
Crie a rota para adicionar posts:
from flask import request, redirect
@app.route("/adicionar", methods=["POST"])
def adicionar():
titulo = request.form["titulo"]
conteudo = request.form["conteudo"]
conn = sqlite3.connect('site.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO posts (titulo, conteudo) VALUES (?, ?)", (titulo, conteudo))
conn.commit()
conn.close()
return redirect("/")
Estilizando com HTML e CSS
Adicione um arquivo CSS ao diretório static/styles.css
e inclua no base.html
:
Deploy de Produção
Crie um arquivo requirements.txt
:
Flask==2.2.2
Deploy no Render
- Crie uma conta no Render.
- Configure o projeto como um serviço web.
- Adicione o comando de inicialização:
gunicorn app:app
Exercícios
- Crie uma rota para editar posts.
- Adicione funcionalidade para excluir posts.
Lembrando que você pode ler a documentação Oficial do Python para aprender e tirar dúvidas