Stack Técnica e Ambiente
Desenvolvido com Vue.js no frontend e Django/Flask no backend, utilizando HTML, JavaScript, CSS3, Python e MySQL. A implementação ocorreu no PyCharm com armazenamento de dados no MySQL via Navicat. Especificações principais:
- Linguagem: Python 3.7.7
- Framework: Flask/Django
- Banco de dados: MySQL
- Ambiente: PyCharm e navegador Chrome
Características do Python
Python oferece extansibilidade através de integração com C, permitindo chamadas bidirecionais entre as linguagens. Como linguagem interpretada e compilada com paradigma orientado a objetos, destaca-se pela legibilidade e sintaxe intuitiva.
Abordagem de Solução
Foco na coleta e visualização de dados no frontend com Django, priorizando interfaces simplificadas e estruturação eficiente de tabelas. Aplicou-se programação orientada a objetos, encapsulando dados e operações em classes para modelagem coerente do domínio.
Frameworks Web
Flask: Framework minimalista com alta extensibilidade, ideal para desenvolvimento ágil de serviços web sem restrições a bancos de dados específicos.
Django: Segue o padrão MTV (Model-Template-View):
- Model: Camada de acesso e validação de dados
- Template: Apresentação visual
- View: Lógica de negócios e mediação entre Model e Template
Fluxo Técnico
- Frontend: Vue.js
- Backend: Python com Djengo/Flask
- Banco de dados: MySQL
- Ferramentas: PyCharm e Navicat
Viabilidade Operacional
Interface intuitiva com feedback visual para operações, minimizando carga cognitiva. Mecanismos de orientação garantem inserção adequada de dados conforme tipo e formato.
Desempenho e Segurança
Otimizado para respostas em até 2 segundos, com escalabilidade para picos de acesso. Implementa controle granular de permissões, criptografia de dados e backups periódicos para mitigar riscos.
Exemplo Flask
import os
from flask import Blueprint
from utils.verificador_arquivo import validar_py
bp_principal = Blueprint('core', __name__, static_folder='static')
modulos = set()
excluir = ["__init__.py"]
caminho = os.path.join(os.getcwd(), "api/core")
caminho = caminho.replace("testes/", '') if "testes/" in caminho else caminho
for arquivo in os.listdir(caminho):
if arquivo not in excluir and validar_py(arquivo):
modulo = arquivo.split(".")[0]
modulos.add(modulo)
importar = f"from . import {','.join(modulos)}"
exec(importar)
Exemplo Django
from django.http import JsonResponse
from .modelo_usuarios import Usuario
from util.codigos import *
from util.autenticacao import Autenticador
import util.mensagens as msg
def autenticar(request):
if request.method in ["POST", "GET"]:
resposta = {'codigo': codigo_normal, "mensagem": msg.normal}
dados = request.session.get("dados")
if 'funcao' in dados:
del dados['funcao']
usuarios = Usuario.filtrar(Usuario, dados)
if not usuarios:
resposta.update(codigo=codigo_erro_senha, mensagem=msg.erro_senha)
return JsonResponse(resposta)
dados['id'] = usuarios[0].id
return Autenticador.verificar(Usuario, dados)
def registrar(request):
if request.method in ["POST", "GET"]:
resposta = {'codigo': codigo_normal, "mensagem": msg.normal}
dados = request.session.get("dados")
erro = Usuario.criar(Usuario, dados)
if erro:
resposta.update(codigo=codigo_erro_bd, mensagem=erro)
return JsonResponse(resposta)