Sei sulla pagina 1di 5

SITE DE VENDAS TOM BOOK STORE

FASE 1 CONEXO COM O BANCO TBSTORE

Para o desenvolvimento do projeto, utilizada a linguagem Python como base para os cdigos
da aplicao, atravs do framework web Django (figura 1). Frameworks Web so colees de
pacotes ou mdulos que permitem aos desenvolvedores escrever aplicaes web ou servios sem ter
que lidar com detalhes de baixo nvel como protocolos, sockets e gerenciamento de
processos/threads. Alm do Django, utilizado o adaptador psycopg2 para comunicao entre a
linguagem e o banco de dados, desenvolvido com PostgreSQL. Esse adaptador implementa
totalmente a PEP 249: Especificao da API de banco de dados para Python.

Figura 1: Pgina principal do site oficial do framework web Django.

Como o framework trabalha com a arquitetura MVC (Model, View, Controller), foi
desenvolvida uma camada de dados (Model) onde as tabelas do banco de dados so representadas
por classes e suas colunas por atributos. Dessa forma, a aplicao pode manipular de forma mais
limpa os dados do banco. Como o Django trabalha o projeto atravs da criao de aplicativos (cada
um com sua estrutura MVC), 3 destes foram criados seguindo as categorias: Produto, Cliente e
Venda (figura 2). As tabelas tambm foram representadas nos respectivos Models de acordo com
essas categorias (figura 3).

Figura 2: Diretrios dos aplicativos Cliente, Produto e Venda, junto com o diretrio de
configurao do projeto, tbstore.
Figura 3: Estrutura MVC em cada aplicativo (na imagem, em Produto) e a representao em
forma de classe das tabelas.

Geralmente, as classes e atributos criados na camada Model so a base para a gerao da


estrutura de metadados do banco de dados. Entretanto, j que o banco foi projetado e desenvolvido
antes do projeto de aplicao, ento pde ser utilizada uma ferramenta chamada Inspectdb. Esta
ferramenta realiza uma introspeco no banco existente (Figura 4), gerando um documento de
descrio do mesmo em forma de classes.

Figura 4: Comando para gerar o documento de descrio a partir da introspeco do banco.

Como a ligao dos dados de uma tabela pode ser feita atravs de referncias a classe
correspondente no Model, a manipulao desses dados se torna simples e de fcil acesso qualquer
arquivo do projeto, bastando apenas importar do arquivo Model a classe desejada. No entanto,
como o intuito da primeira fase do projeto era a manipulao back-end das informaes, a ateno
se voltou para um portal de administrao, onde seria possvel realizar um CRUD(Create-Read-
Update-Delete) em qualquer tabela do banco. Para tal, apoveitou-se de uma funcionalidade robusta
do framework Django, sua interface de administrao (Figura 5). Atravs dela, os modelos do
projeto so lidos e uma interface centrada em modelo gerada para manipulao (Figura 6-7).
Figura 5: Arquivo de configurao onde so atribuidas as classes de um aplicativo
interface de administrao do Django.

Figura 6: Interface inicial da pgina de administrao.

O gerenciamento de login da interface de administrao feito atravs de uma tabela de


usurios(Figura 8) e o usurio que o projeto de aplicao usa para se conectar ao banco de dados
definido estaticamente no arquivo de configurao do projeto(Figura 9). Conexes com usurios do
banco diferentes possvel atravs de cursores ou atravs de roteamento.
Figura 7: Exemplo de manipulao de dados do banco atravs do portal de administrao.

Figura 8: Pgina de login do portal de administrao.


Figura 9: Conexo com o banco de dados definida estaticamente.

Para qualquer uma das opes, os usurios a serem conectados no banco precisam ter seus
alias especificados no arquivo de configurao. Para implementao futura, a idia consiste em
especificar usurios-categoria e relacionar os usurios da tabela de usurios com eles de acordo
com a atribuio de cada um (Figura 10). Ex: gerente Ricardo, conecta com o usurio
Administrador, j o cliente Roberto, conecta com o usurio Cliente.

Figura 10: Exemplo de conexo com mais de um usurio do banco. Os usurios de tabela
seriam categorizados para se conectarem atravs de algum dos usurios categoria pr-
configurados.

Potrebbero piacerti anche