Desenvolvimento Web com Python: Um Guia Completo

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?
O desenvolvimento web com Python refere-se à criação de sites e aplicativos web utilizando a linguagem Python. Python oferece diversas bibliotecas e frameworks que simplificam o processo, seja para criar um pequeno site ou uma aplicação complexa. Os dois frameworks mais populares são:
  • Flask: Um microframework minimalista e flexível.
  • Django: Um framework completo e “baterias incluídas” para projetos maiores.
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ê:

  1. Possui o Python instalado.
  2. Tem conhecimento básico sobre a linguagem (veja os tutoriais anteriores da série).
  3. 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
python-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:

				
					<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Minha Aplicação Web</title>
</head>
<body>
    <h1>Bem-vindo à Minha Aplicação Web!</h1>
</body>
</html>

				
			

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:

				
					<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sobre</title>
</head>
<body>
    <h1>Sobre Nossa Aplicação</h1>
    <p>Esta é uma aplicação feita com Flask.</p>
</body>
</html>

				
			
Templates com Jinja2

O Flask usa o motor de templates Jinja2 para integrar Python no HTML.
Adicione ao index.html:

				
					<ul>
    {% for item in ["Página Inicial", "Sobre", "Contato"] %}
    <li>{{ item }}</li>
    {% endfor %}
</ul>

				
			
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:

				
					<form action="/adicionar" method="post">
    <input type="text" name="titulo" placeholder="Título">
    <textarea name="conteudo" placeholder="Conteúdo"></textarea>
    <button type="submit">Adicionar Post</button>
</form>

				
			

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:

				
					<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">

				
			
Deploy de Produção

Crie um arquivo requirements.txt:

				
					Flask==2.2.2

				
			
Deploy no Render
				
					gunicorn app:app

				
			
Exercícios
  1. Crie uma rota para editar posts.
  2. Adicione funcionalidade para excluir posts.

Lembrando que você pode ler a documentação Oficial do Python para aprender e tirar dúvidas

Notícias Relacionadas

Categorias

Redes Sociais