Estrutura da pirâmide

Pyramid é uma estrutura geral de desenvolvimento de aplicativos da Web de código aberto construída em Python. Ele permite que o desenvolvedor python crie aplicativos da web com facilidade.

Pyramid é apoiado pelo Enterprise Knowledge Management System KARL (um projeto de George Soros).

Instalando, inicializando e configurando

Conforme descrito, “o framework começa pequeno, termina grande, permanece concluído”, Pyramid é muito parecido com o Flask, que exige muito pouco esforço para instalar e executar. Na verdade, você reconhecerá que alguns dos padrões são semelhantes ao Flask assim que começar a construir este aplicativo.

A seguir estão as etapas para criar um ambiente de estrutura de pirâmide -

  • Primeiro, crie um diretório de projeto. Aqui, criamos um diretório chamadopyramidProject (você pode escolher qualquer nome que desejar).

  • Em seguida, crie um ambiente virtual onde você instalará todas as dependências específicas do projeto. Aqui, criamos uma pasta de ambiente virtual chamadapyramidEnv onde o Pyramid está instalado.

  • Em seguida, vá para o diretório, pyramidEnv e instalar a pirâmide com pip install pyramid.

Depois que tudo for feito conforme mencionado acima, sua estrutura de diretório será conforme mostrado abaixo -

E a versão pirâmide instalada no sistema é fornecida abaixo -

Conceitos Básicos

A estrutura da pirâmide é baseada nos conceitos centrais abaixo -

  • Zope (extensibilidade, travessia, segurança declarativa) - Pyramid é vagamente baseado no Zope em termos de extensibilidade, o conceito de travessia e a segurança declarativa.

  • Pylons(Envio de URL, visão não opinativa de persistência, modelagem, etc.) - Outra área de onde a pirâmide desenha seu conceito é o projeto de postes. Pylons tem aquele conceito de rotas, que chama o despacho de URL dentro do framework da pirâmide e eles também têm a visão não opinativa da camada de persistência ou modelagem.

  • Django(Visualização, nível de documentação) - Pyramid também recebe dicas do Django. A forma como tomamos nossa visão, roteamos nossa URL e o nível de documentação é muito Django.

A seguir estão os recursos da estrutura da pirâmide -

  • É a estrutura da web Python mais rápida conhecida.

  • Ele suporta projetos pequenos e grandes (por que reescrever quando você supera seu pequeno framework).

  • Ele suporta webapps de arquivo único como microframeworks.

  • Possui sessões integradas.

  • Ele suporta eventos semelhantes ao Plone / Zope.

  • Ele fornece gerenciamento de transações (se você já percebeu que usamos o Zope antes).

Configuração

Configuração são as configurações que influenciam a operação de um aplicativo. Existem duas maneiras de configurar um aplicativo em pirâmide: configuração imperativa e configuração declarativa.

A configuração da pirâmide suporta -

  • Configuração imperativa ou mesmo a substituição das configurações baseadas no decorador

  • Detecção de conflito de configuração (incluindo determinação mais local vs. menos local)

  • Extensibilidade da configuração (incluída em vários aplicativos)

  • Políticas flexíveis de autenticação e autorização

  • Introspecção programática da configuração (ver o estado atual das rotas para gerar nav)

Geração de URL

Na pirâmide, podemos gerar URLs para rotas, recursos e ativos estáticos. É fácil e flexível trabalhar com APIs de geração de URL. Ao gerar URLs por meio das várias APIs do pirâmide, os usuários podem alterar a configuração arbitrariamente sem se preocupar muito em quebrar um link com qualquer uma de suas páginas da web.

Resumindo, URL na pirâmide -

  • suporta a geração de URL para permitir mudanças no aplicativo que não quebrem links.

  • gera URLs para recursos estáticos que vivem dentro ou fora do aplicativo.

  • suporta Rotas e Traversal.

Visualizações

Uma das principais tarefas da pirâmide é encontrar e invocar uma visualização que pode ser chamada quando uma solicitação chega ao seu aplicativo. View callables são bits de código que fazem algo interessante em resposta a uma solicitação feita em seu aplicativo.

Quando você mapeia suas visualizações em seu despacho de URL ou código Python, pode haver qualquer tipo de chamada. As visualizações podem ser uma declaração de função ou uma instância, podem ser usadas como uma visualização na pirâmide.

Alguns pontos importantes sobre Visualizações são fornecidos abaixo -

  • As visualizações são geradas a partir de qualquer chamável.

  • As visualizações baseadas em renderizador podem simplesmente retornar dicionários (não é necessário retornar um objeto de estilo webby).

  • Suporta múltiplas visualizações por rota (GET vs. POST vs. verificação de cabeçalho HTTP, etc.).

  • Adaptadores de resposta de visualização (quando você deseja especificar como os valores de retorno de visualização devem ser tratados em relação aos objetos de resposta).

Extensibilidade

A pirâmide foi projetada com a extensibilidade em mente. Portanto, se um desenvolvedor de pirâmide está tendo em mente certas restrições ao construir um aplicativo, um terceiro deve ser capaz de alterar o comportamento do aplicativo sem precisar modificar seu código-fonte. O comportamento de um aplicativo de pirâmide que obedece a certas restrições pode ser substituído ou estendido sem qualquer modificação. Ele é projetado para implantações flexíveis em vários ambientes (sem singletons). Pyramid tem suporte de middleware “Tweens” (middleware WSGI, mas é executado no contexto do próprio Pyramid).

Executando um programa Hello, Pyramid

O programa mais simples que podemos pensar após instalar o framework pirâmide para verificar se tudo está funcionando bem, é executar um programa simples “Hello, World” ou “Hello, Pyramid”.

Abaixo está o meu programa “Hello, Pyramid” da pirâmide no número da porta 8000 -

O exemplo simples acima é fácil de executar. Salve-o como app.py (neste, demos o nome de pyramid_helloW.py).

Executando o programa mais simples: -

A seguir, abra http://localhost:8000/em um navegador, e você verá o Hello, Pyramid! Mensagem da seguinte forma -

A seguir está a explicação para o código acima -

Nº da linha 1-3

No cabeçalho do arquivo, temos instruções de importação. A primeira linha importa a função make_server, que pode criar um servidor da web simples quando é passada para um aplicativo. A segunda e a terceira linha importam a configuração e a função de resposta da pirâmide. Essas funções são usadas para configurar detalhes e definir parâmetros para o aplicativo e responder às solicitações, respectivamente.

Nº da linha 5-6

Agora temos uma definição de função chamada hello_world. Implemente o código de visualização que gera a resposta. Uma função que atende aos requisitos de uma visualização é responsável por renderizar o texto que será passado de volta para a entidade solicitante. No caso acima, a função, quando chamada, usa a função Response que importamos anteriormente. Isso devolve um valor que deve ser dado ao cliente.

Nº da linha 8

if __name__ == '__main__': Python está dizendo, “Comece aqui ao executar a partir da linha de comando”, em vez de quando este módulo for importado.

Nº da linha 9-11

Na linha não. 9, criamos uma variável chamada config a partir do objeto criado pela função do configurador que importamos no topo do programa. As linhas 10 e 11 chamam o método add_route e add_view deste objeto. Este método é usado para definir uma visualização que pode ser usada pelo aplicativo. Como podemos ver, passamos a função hello_world que definimos anteriormente. É aqui que essa função é realmente incorporada como uma visualização.

Nº da linha 12-14

Nesse caso, realmente criamos o aplicativo WSGI chamando o método make_wsgi_app do objeto de configuração. Isso usa os atributos do objeto, como a visualização que adicionamos, para criar um aplicativo. Esta aplicação é então passada para a função make_server que importamos para criar um objeto que pode lançar um servidor web para servir a nossa aplicação. A última linha inicia este servidor.

Nosso hello world applicationé um dos aplicativos de pirâmide mais simples e fáceis possíveis, configurado “imperativamente”. É imperativo porque todo o poder do Python está disponível para nós enquanto executamos as tarefas de configuração.

Para resumir, Pyramid é uma estrutura da web python de código aberto com uma comunidade grande e ativa. Essa grande comunidade contribui para tornar a estrutura da web python popular e relevante. A estrutura da web Pyramid simplifica e acelera o desenvolvimento de aplicativos da web, fornecendo um conjunto de recursos e ferramentas robustas.