Sistema de Gestão de Estágios Externos em Python

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

  1. Frontend: Vue.js
  2. Backend: Python com Djengo/Flask
  3. Banco de dados: MySQL
  4. 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)

Tags: Python Flask Django MySQL vue

Publicado em 6-17 00:37