39. Conclusão
Vamos rever o trabalho realizado neste documento:
Capítulo | Repositório de código | Índice |
Visão geral do curso | ||
Configurar um ambiente de trabalho | ||
[Noções básicas] | Noções básicas da linguagem Python – estruturas da linguagem – tipos de dados – funções – saída da consola – cadeias de formatação – conversão de tipos – listas – dicionários – expressões expressões | |
[cadeias de caracteres] | Notação de cadeias – métodos da classe <str> – codificação/decodificação cadeias de caracteres em UTF-8 | |
[exceções] | Tratamento de exceções | |
[funções] | Âmbito das variáveis – Parâmetros Passagem – Utilização de módulos – O caminho do Python – Parâmetros – Funções Funções | |
[ficheiros] | Ler/escrever um ficheiro de texto – trabalhar com ficheiros codificados em UTF-8 – trabalho com ficheiros JSON | |
[taxes/v01] | Versão 1 da aplicação Exercício: cálculo do imposto sobre o rendimento . A aplicação está disponível em 18 versões – A Versão 1 implementa uma solução procedural | |
[importações] | Gerir as importando módulos – um método de é apresentado – é utilizado ao longo de todo o documento – gestão do caminho do Python | |
[impots/v02] | A versão 2 da aplicação baseia-se na versão 1, reunindo todas as constantes de configuração num ficheiro de configuração que também gerencia o caminho do Python | |
[impots/v03] | A versão 3 da aplicação baseia-se na versão 2, utilizando funções encapsuladas num módulo — a é gerida através da configuração — introdução de um ficheiro JSON para ler os dados necessários para o cálculo de impostos e gravar os resultados do cálculo | |
[classes/01] | Classes – herança – métodos e propriedades – getters/setters – construtor – [__dict__] propriedade | |
[classes/02] | Introdução às classes [BaseEntity] e [MyException] utilizadas ao longo do resto do documento – [BaseEntity] facilita as conversões objeto/dicionário . | |
[três camadas] | Arquitetura em camadas e programação baseada em interfaces. Este capítulo apresenta os métodos de programação utilizados ao longo do resto do documento | |
[taxes/v04] | Versão 4 da aplicação – esta versão implementa uma solução com uma arquitetura em camadas, programação baseada em interfaces e o uso de classes derivadas de [BaseEntity] e [MyException] | |
[bases de dados/mysql] | Instalação do SGBD MySQL – ligar a uma base de dados – criar uma tabela – executar SELECT, UPDATE, DELETE, e INSERT – transações – consultas SQL SQL | |
[bases de dados/postgresql] | Instalação do SGBD PostgreSQL – ligar-se a uma base de dados – criar uma tabela – executar SELECT, UPDATE, DELETE, e INSERT – transações – consultas SQL SQL | |
[bases de dados/qualquer SGBD] | Escrever código independente do SGBD | |
[bases de dados/sqlalchemy] | O ORM (Object- ) – um ORM permite uma abordagem unificada para trabalhar com diferentes SGBDs – mapeamento de classes para tabelas SQL – operações em classes que representam tabelas SQL | |
[taxes/v05] | Versão 5 da aplicação de cálculo de impostos – Utilizando a arquitetura em camadas da versão 04 e o ORM SqlAlchemy para funcionar com os SGBDs MySQL e PostgreSQL . | |
[inet] | Programação Web – Protocolo TCP/IP (Protocolo de Controlo de Transmissão / Protocolo de Internet) – Protocolos HTTP (Protocolo de ) – SMTP (Protocolo Simples de Transferência de Correio) – POP (Protocolo de Correio) – IMAP (Protocolo de Acesso a Mensagens na Internet ) | |
[flask] | Serviços Web com o framework Flask – exibição de uma página HTML – serviço web JSON – Pedidos GET e POST – gerir uma sessão web | |
[impostos/servidores-http/01] [impostos/clientes-http/01] | Versão 6 da aplicação Exercício – Criação de um serviço web JSON para cálculo de impostos com uma arquitetura multicamadas – Escrever um cliente web para este servidor com uma arquitetura multicamadas – programação cliente/servidor – utilizando o módulo [requests] | |
[taxes/http-servers/02] [impostos/clientes-http/02] | Versão 7 da aplicação exercício – A versão 6 foi melhorada: o cliente e o servidor são multithreaded – [Logger] utilitários para registar as trocas cliente/servidor – [SendMail] para enviar um e-mail ao administrador da aplicação administrador | |
[taxes/http-servers/03] [taxas/clientes-http/03] | Versão 8 da aplicação exercício – A versão 7 foi melhorada através da utilização de uma sessão web | |
[xml] | Gestão de XML (eXtended Markup ) com o módulo [xmltodict] | |
[taxes/http-servers/04] [impostos/clientes-http/04] | Versão 9 do aplicativo exercício – a versão 8 é modificada para incluir trocas cliente/servidor em XML; | |
[taxes/http-servers/05] [impostos/clientes-http/05] | Versão 10 da aplicação exercício – em vez de processar N contribuintes através de N pedidos GET, é utilizada uma única solicitação POST é utilizada com os N contribuintes no corpo da solicitação POST corpo | |
[impostos/servidores-http/06] [impostos/clientes-http/06] | Versão 11 do exercício da aplicação exercício – a arquitetura cliente/servidor do aplicativo é modificada: a camada [de negócios] passa do servidor para o cliente | |
[impostos/servidores-http/07] | Versão 12 do aplicativo exercício – esta versão implementa um servidor MVC (Modelo–Visão– Controller) que fornece JSON, XML e HTML de forma intercambiável, dependendo da solicitação do cliente. Este capítulo implementa as versões JSON e XML do servidor | |
[impots/http-clients/07] | Implementação dos clientes JSON e XML para o servidor MVC na Versão 12 | |
[impots/http-servers/07] | Implementação do servidor HTML na versão 12 – utilizando o framework CSS Bootstrap – | |
[impots/http-servers/08] | Versão 13 da aplicação exercício – Refatoração do código da versão 12 – gestão de utilizando o módulo [flask_session] e um servidor Redis – utilizando senhas | |
[import/http-servers/09] [importações/clientes-http/09] | Versão 14 da aplicação exercício – implementação de URLs com um token CSRF (Cross-Site Request ) | |
[impots/http-servers/10] | Versão 15 da aplicação exercício – refatoração do código da versão 14 para lidar com dois tipos de ações: ASV (Ação Mostrar Vista), que são usadas apenas para exibir uma vista sem alterar o estado do servidor, e ADS (Action Do Something), que executam uma ação que altera o estado do servidor — todas estas ações terminam todas com um redirecionamento para uma ação ASV — isto permite o tratamento adequado das atualizações de página no navegador do cliente | |
[impots/http-servers/11] | Versão 16 da aplicação – Gestão de URLs com prefixos | |
[importações/servidores-http/12] | Versão 17 da aplicação – portando a versão 16 para um servidor Apache/Windows | |
[impots/http-servers/13] | Versão 18 da aplicação – corrige um bug na versão 17 |
As aplicações de cálculo de impostos cliente/servidor implementaram a seguinte arquitetura:

A camada [web] acima foi implementada utilizando uma arquitetura MVC:

O conteúdo deste documento é denso. Os leitores que chegarem ao fim irão adquirir uma compreensão sólida da programação web MVC em Python/Flask e, além disso, uma compreensão sólida da programação web MVC noutras linguagens.
É possível encontrar informações adicionais sobre o framework Flask no documento [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world], da autoria de Miguel Grinberg. Li algumas secções do seu curso e achei-as muito instrutivas. O autor aborda muitos conceitos que não são tratados neste documento.