Skip to content

pedrovrc/Flask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projetos de estudo — Flask (mini-projetos)

Este repositório contém três mini-projetos para aprender Flask, cada um em sua própria pasta:

  • Mini_Task_API/ — Mini API de Tarefas (To-Do) — servidor REST simples com armazenamento em memória e testes.
  • Mini_Tasks_Website/ — Site simples de lista tarefas com formulários e templates HTML (Jinja).
  • Database_and_API/ — Projeto completo com banco de dados SQLAlchemy, Flask-Migrate, API RESTful e interface web.

Este README explica como rodar e testar os subprojetos dentro desse repositório.


Mini_Task_API — visão geral

Estrutura mínima dentro de Mini_Task_API:

  • app.py — factory create_app() e rotas REST (GET/POST/PUT/DELETE) para /tasks.
  • tasks.pyTaskStore em memória (CRUD básico).
  • tests/ — testes automatizados com pytest que usam app.test_client().
  • requirements.txt — dependências do projeto (Flask, pytest).

O servidor foi mantido propositalmente simples para fins didáticos.

Como rodar localmente (Windows / PowerShell)

  1. Abra o PowerShell na raiz do repositório.

  2. Crie e ative um ambiente virtual (recomendado):

python -m venv .venv
.venv\Scripts\Activate.ps1
  1. Instale dependências (dentro de Mini_Task_API):
cd Mini_Task_API
pip install -r requirements.txt
  1. Rodar a aplicação (a partir de Mini_Task_API):
# Defina a variável de ambiente para a factory (opcional)
#$env:FLASK_APP="app:create_app"
#$env:FLASK_ENV="development"
flask run

Ou, sem usar flask run (mais explícito):

python -c "from app import create_app; create_app().run(debug=True)"

O servidor ficará disponível em http://127.0.0.1:5000.

  1. Testes automatizados (a partir de Mini_Task_API):
# com o venv ativado
python -m pytest -q

Endpoints principais (exemplos)

  • GET /tasks — lista todas as tarefas
  • GET /tasks/ — pega tarefa por id
  • POST /tasks — cria tarefa (payload JSON: {"title": "texto"})
  • PUT /tasks/ — atualiza tarefa (p.ex. {"done": true})
  • DELETE /tasks/ — remove tarefa

Exemplo usando PowerShell (Invoke-RestMethod):

Invoke-RestMethod -Method Post -Uri http://127.0.0.1:5000/tasks -Body (ConvertTo-Json @{ title = 'Comprar leite' }) -ContentType 'application/json'
Invoke-RestMethod http://127.0.0.1:5000/tasks

Mini_Tasks_Website — visão geral

Estrutura mínima dentro de Mini_Tasks_Website:

  • app.py — factory create_app() e rotas para páginas (index, create, edit, delete).
  • tasks.pyTaskStore em memória com métodos create/get/list/update/delete.
  • templates/base.html, index.html, create.html, edit.html (Jinja2 templates).
  • static/ — CSS e recursos estáticos.
  • tests/ — testes com pytest simulando requisições via app.test_client().

Como rodar localmente (Windows / Powershell)

  1. Abra o PowerShell na pasta do subprojeto (Mini_Tasks_Website)

  2. Ative o ambiente virtual criado na raiz do repo (ou crie/ative um aqui):

.venv\Scripts\Activate.ps1
  1. Instale dependências:
pip install -r requirements.txt
  1. Rodar a aplicação:
$env:FLASK_APP="app:create_app"
flask run

Abra o navegador em http://127.0.0.1:5000.

Testes (Mini_Tasks_Website)

Se você adicionou a pasta tests/ dentro do subprojeto, rode os testes assim (na pasta Mini_Tasks_Website):

python -m pytest -q

Database_and_API — visão geral

Projeto Flask com arquitetura em camadas, banco de dados SQLAlchemy, Flask-Migrate, API RESTful e interface web.

Principais arquivos e estrutura:

  • app.py: Factory da aplicação Flask, registro dos blueprints e inicialização do banco/migrações
  • models.py: Modelos SQLAlchemy (Task)
  • repositories.py: Camada de acesso a dados (CRUD)
  • services.py: Regras de negócio e validação
  • api.py: Blueprint da API RESTful (/api/v1/tasks)
  • web.py: Blueprint da interface web (páginas HTML)
  • config.py: Configurações (SECRET_KEY, URI do banco)
  • requirements.txt: Dependências
  • migrations/: Migrações do banco (Alembic)
  • templates/: Templates HTML (Jinja2)
  • tests/: Testes automatizados com banco em memória

Como rodar localmente (Windows / PowerShell)

  1. Abra o PowerShell na pasta Database_and_API.

  2. Crie e ative um ambiente virtual (recomendado):

    python -m venv .venv
    .venv\Scripts\Activate.ps1
  3. Instale as dependências:

    pip install -r requirements.txt
  4. Inicialize as migrações e o banco:

    flask db init
    flask db migrate
    flask db upgrade
  5. Rode a aplicação:

    python app.py

Testes

Execute os testes automatizados:

pytest

Endpoints principais

  • API: /api/v1/tasks (GET, POST, PUT, DELETE)
  • Web: / (listar, criar, editar, deletar tarefas)

Observações

  • Banco padrão: SQLite (tasks.db)
  • Para testes, usa SQLite em memória
  • Regras de negócio e validação no services.py
  • Transações e erros tratados no repositório

Próximos passos e ideias de evolução

  • ✅ Concluir API simples de tarefas - Praticar aplicação básica de servidor REST simples com Flask.
  • ✅ Concluir Site de tarefas - Praticar uso de templates HTML (Jinja2) e formulários.
  • ✅ Concluir Banco de Dados + API - Integração das partes anteriores com um banco de dados persistente.

About

Um repositório com estudos simples usando Flask.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published