https://github.com/arkaniightt/curso_introdutorio_flask
O repositório "Curso Introdutório Flask" é uma coleção de materiais e exemplos práticos voltados para iniciantes que desejam aprender a framework Flask, utilizado para o desenvolvimento de aplicações web em Python.
https://github.com/arkaniightt/curso_introdutorio_flask
flask flask-api flask-application flask-sqlalchemy
Last synced: 8 months ago
JSON representation
O repositório "Curso Introdutório Flask" é uma coleção de materiais e exemplos práticos voltados para iniciantes que desejam aprender a framework Flask, utilizado para o desenvolvimento de aplicações web em Python.
- Host: GitHub
- URL: https://github.com/arkaniightt/curso_introdutorio_flask
- Owner: ArkaNiightt
- Created: 2024-09-10T02:04:24.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-17T01:47:55.000Z (almost 2 years ago)
- Last Synced: 2024-12-27T04:14:00.061Z (over 1 year ago)
- Topics: flask, flask-api, flask-application, flask-sqlalchemy
- Language: Python
- Homepage:
- Size: 7.81 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# E-commerce API com Flask

Uma aplicação de e-commerce simples desenvolvida com **Flask**, **Flask-SQLAlchemy** e **Flask-Login**, que inclui funcionalidades básicas de autenticação de usuários, gerenciamento de produtos e carrinho de compras. Esta aplicação usa hashing de senhas para garantir a segurança dos dados dos usuários e oferece uma API para a criação, atualização, exclusão e listagem de produtos.
## Funcionalidades
- **Autenticação de usuários**: Registre, faça login e logout de usuários.
- **Gerenciamento de produtos**: Adicione, atualize, liste e exclua produtos.
- **Carrinho de compras**: Relaciona usuários com produtos em um carrinho de compras simples.
- **Segurança de senhas**: As senhas dos usuários são armazenadas utilizando hash seguro (usando `Werkzeug`).
- **CORS habilitado**: Preparado para interações com frontend de domínios diferentes.
## Tecnologias Utilizadas
- **Flask**: Framework web Python.
- **Flask-SQLAlchemy**: ORM para interagir com o banco de dados.
- **Flask-Login**: Gerenciamento de sessão de usuários.
- **Flask-CORS**: Habilita o suporte a CORS (Cross-Origin Resource Sharing).
- **SQLite**: Banco de dados simples para armazenar dados localmente.
- **Werkzeug**: Utilizado para hashing seguro de senhas.
## Requisitos
- Python 3.7+
- pip (gerenciador de pacotes)
## Instalação
1. Clone o repositório:
```bash
git clone
cd ecommerce-flask
pip install -r requirements.txt
```
## Estrutura do Projeto
```plaintext
ecommerce-flask/
│
├── app.py # Código principal da aplicação
├── keys.py # Arquivo contendo a chave secreta do Flask
├── requirements.txt # Arquivo com as dependências do projeto
├── README.md # Documentação da aplicação
├── models.py # Definição dos modelos do banco de dados (User, Product, etc.)
├── __init__.py # Inicialização do pacote
└── venv/ # Ambiente virtual (opcional)
```
# Flask Shell: Introdução ao Uso com SQLAlchemy
Este arquivo fornece instruções sobre como utilizar o **Flask Shell** para interagir com a aplicação Flask, o banco de dados SQLAlchemy e o gerenciamento de senhas com hashing seguro.
## Pré-requisitos
Certifique-se de que as seguintes dependências estão instaladas:
```bash
pip install Flask Flask-SQLAlchemy Flask-Login Flask-CORS Werkzeug
```
## Configuração do Flask Shell
No arquivo principal da aplicação (app.py), adicione o seguinte código para facilitar o uso do Flask Shell:
```python
@app.shell_context_processor
def make_shell_context():
return {
"db": db,
"User": User,
"Product": Product,
"CartItem": CartItem
}
```
## Iniciando o Flask Shell
Após configurar o shell_context_processor, você pode iniciar o Flask Shell no terminal com o seguinte comando:
```bash
flask shell
```
sso abrirá uma sessão interativa do Flask onde você pode executar comandos para interagir com a aplicação e o banco de dados.
## Exemplos no Flask Shell
A seguir, estão alguns exemplos de como usar o Flask Shell para criar o banco de dados, adicionar usuários com hashing de senhas e verificar senhas.
### 1. Criar o banco de dados
Para criar o banco de dados e as tabelas definidas no seu modelo, execute o seguinte comando dentro do Flask Shell:
```python
db.create_all()
```
Isso cria todas as tabelas baseadas nos modelos User, Product, e CartItem definidos no seu código.
### 2. Criar um novo usuário com senha hash
Você pode criar um novo usuário e garantir que a senha seja armazenada de forma segura, utilizando o método set_password. Execute os seguintes comandos:
```python
# Criar um novo usuário
user = User(username="novo_usuario")
user.set_password("minha_senha_secreta") # Definir a senha com hash
db.session.add(user)
db.session.commit()
```
Isso adiciona o novo usuário novo_usuario ao banco de dados, com a senha armazenada de forma segura como um hash.
### 3. Verificar a senha hash
Para verificar se a senha fornecida é válida, você pode utilizar o método verify_password:
```python
# Buscar o usuário
user = User.query.filter_by(username="novo_usuario").first()
# Verificar a senha
user.verify_password("minha_senha_secreta") # Retorna True se a senha estiver correta
```
Se a senha estiver correta, o método verify_password retornará True. Se a senha estiver incorreta, ele retornará False.
### Sessão Completa no Flask Shell
Aqui está um exemplo completo de uma sessão no Flask Shell, desde a criação do banco de dados até a criação de um novo usuário e verificação da senha:
```bash
$ flask shell
>>> db.create_all() # Criar o banco de dados
>>> # Criar um novo usuário
>>> user = User(username="novo_usuario")
>>> user.set_password("minha_senha_secreta")
>>> db.session.add(user)
>>> db.session.commit()
>>> # Buscar e verificar o usuário
>>> user = User.query.filter_by(username="novo_usuario").first()
>>> user.verify_password("minha_senha_secreta") # Deve retornar True
True
>>> user.verify_password("senha_incorreta") # Deve retornar False
False
```
### Conclusão
Com o Flask Shell, você pode interagir de maneira simples e direta com seu banco de dados, facilitando o processo de desenvolvimento e testes de sua aplicação. Experimente criar usuários, adicionar produtos e verificar funcionalidades usando o shell interativo do Flask.
### O que foi incluído
1. **Configuração do Flask Shell**: Explicação de como adicionar o `@app.shell_context_processor` no código para carregar automaticamente as instâncias de `db` e os modelos.
2. **Iniciando o Flask Shell**: Comando para abrir a sessão do Flask Shell (`flask shell`).
3. **Exemplos detalhados**:
- Criação do banco de dados com `db.create_all()`.
- Criação de um novo usuário utilizando o método `set_password` para armazenar a senha de forma segura.
- Verificação da senha utilizando o método `verify_password`.
4. **Sessão completa** no Flask Shell, mostrando os comandos em sequência desde a criação do banco até a verificação de senha.
Com esse arquivo `README.md`, você tem um guia passo a passo completo para interagir com o Flask Shell e testar suas funcionalidades de gerenciamento de senhas e banco de dados.