Trata-se de um simples exemplo para demonstrar como fazer uma aplicação com o framework Flask e algumas de suas extensões, como SQLAlchemy, Bootstrap e WTForms.
Este projeto apresenta ainda uma ideia de organização seguindo o conceito Blueprints do Flask para construção de aplicações modulares.
No arquivo agenda_contatos/__init__.py é onde a aplicação é iniciada, os Blueprints são registrados, as extensões do Flask são ativadas. O menu de navegação Bootstrap é criado no arquivo agenda_contatos/home/__init__.py.
A aplicação tem o básico (CRUD), porém algumas partes da aplicação precisam ser implementadas.
O arquivo banco-dump.sql tem as instruções DDL e DML para criar o banco. A modelagem feita com o MySQL Workbench está disponível no arquivo modelagem.mwb.
As configurações de acesso ao banco MySQL (usuário, senha, host, etc) devem ser ajustadas no arquivo .env.
python3 -m venv venv
source venv/bin/activate
# para instalar os pacotes. Só é necessário fazer isso uma única vez
pip install -r requirements.txt
# para executar a aplicação
python3 app.py
No navegador web entre com o endereço http://localhost:5000
. O banco conta com dois usuários para teste:
Usuário | Senha |
---|---|
juca | 1234 |
maria | 1234 |
A senha desses usuários não foi armazenada em claro no banco de dados, mas sim o resumo criptográfico (hash) usando a função PBKDF2 provida pelo módulo wekzeug.security. Caso queira adicionar mais usuários no banco, então abra um console python3 e digite os seguintes comandos para gerar o hash da senha:
from werkzeug.security import generate_password_hash
senha = generate_password_hash('1234')
Basta agora armazenar o valor da variável senha
no banco de dados.