10 frameworks web Python com os quais vale a pena trabalhar em 2018

imagem

De um tradutor: Hoje, oferecemos uma tradução de um artigo publicado no SteelKiwi por Hackernoon. Ela está envolvida no desenvolvimento de soluções de software b2b e b2c e compartilha a experiência adquirida no processo de trabalho com os leitores de seu blog.

As estruturas facilitam a vida do desenvolvedor, oferecendo várias soluções para o desenvolvimento de aplicativos e serviços. Eles automatizam a implementação de soluções padrão, economizando tempo. Assim, o desenvolvedor se concentra no aplicativo, e não nas tarefas de rotina, onde o pensamento criativo não é necessário.

A Skillbox recomenda: O desenvolvedor Python desde o início do curso prático .
Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".

Este artigo fala sobre dez estruturas Python que serão úteis para desenvolvedores e profissionais iniciantes. Em 2018, os antigos frameworks foram atualizados, surgiram novas ferramentas que merecem atenção.

Antes de começar ...


Ao começar a escolher uma estrutura, aprecie o tamanho e a complexidade do seu projeto. Se o que você está desenvolvendo é um sistema grande com uma quantidade razoável de funções, a estrutura de pilha completa é o que você precisa. Se você estiver criando um aplicativo ou serviço relativamente pequeno, preste atenção aos microframes.

Informações sobre algumas das estruturas são fornecidas nas páginas da Wikipedia . A decisão final, no entanto, você deve se basear nos princípios de análise de seu próprio serviço ou aplicativo já mencionados acima.

Estruturas de pilha completa


Django



O Django é um framework de pilha cheia de código aberto e gratuito. Permite adicionar a maioria das funções padrão em um único pacote em vez de procurar bibliotecas individuais.

Entre eles estão os populares, como autenticação, roteamento de URL, migração de esquema de dados, etc.

O Django usa o ORM para mapear objetos para tabelas de banco de dados. O mesmo código funciona com bancos de dados diferentes, portanto, passar de um banco de dados para outro se torna uma tarefa simples. Os principais bancos de dados com os quais o Django trabalha são PostgreSQL, MySQL, SQLite e Oracle. Você pode adicionar outros, mas para isso você precisa de soluções de terceiros.

Pirâmide



Pyramid é uma estrutura de código-fonte aberto que oferece ao desenvolvedor oportunidades máximas com tempo e recursos mínimos.

O recurso mais interessante da estrutura é trabalhar com aplicativos grandes e pequenos. Separadamente, vale a pena destacar funções da Pirâmide como:


Turboears



O TurboGears é uma estrutura de pilha cheia de código aberto para aplicativos da web. Ele permite que o desenvolvedor crie rapidamente aplicativos da Web extensíveis orientados a dados. O TurboGears vem com modelos convenientes e um ORM poderoso e flexível.

As funções mais importantes da estrutura:

  • suporte para vários bancos de dados;
  • suporte para SQLObject e SQLAlchemy ;
  • validação para FormEncode ;
  • Postes como um servidor web;
  • ferramentas de linha de comando.

Web2py



E essa é uma estrutura escalável de código-fonte completo para Python. Mas antes de começar a trabalhar com ele, vale lembrar que ele não é compatível com o Python 3.

Mas o Web2py vem com seu próprio IDE, que possui: editor de código, depurador e implantação com um clique. Entre outras funções e ferramentas, vale destacar o seguinte:

  • falta de instalação e configuração;
  • trabalhe no Windows, Mac, Google App Engine, Amazon EC2 e em qualquer hospedagem que suporte Python 2.5–2.7 ou Java + Python;
  • trabalhar com vários protocolos;
  • alto nível de segurança de dados;
  • rastreador de erros;
  • compatibilidade com versões anteriores, que permite trabalhar facilmente com aplicativos e serviços com base nas versões anteriores da estrutura.

Microframes


Balão



Este é um microframework licenciado sob o BSD. Seus desenvolvedores foram inspirados no framework Sinatra Ruby. Depende do kit de ferramentas Werkzeug WSGI e do modelo Jinja2 .

O frasco possui um design modular que permite sua adaptação para muitas tarefas. Pronto para uso, o desenvolvedor recebe as seguintes funções:

  • servidor embutido e depurador;
  • Modelos Jinja2
  • suporte para cookies seguros;
  • WSGI 1.0;
  • Unicode
  • a capacidade de se conectar a qualquer ORM.

Foi criada uma estrutura para dar suporte aos desenvolvedores de aplicativos da web que tiveram a oportunidade de escolher extensões ao seu gosto.

Garrafa



Outro microframework que foi originalmente planejado para criar uma API. O frasco se distingue pela presença de um único arquivo de origem. Trabalhar com ele não requer "dançar com um pandeiro".

Seus recursos padrão incluem roteamento, modelos, utilitários e abstração básica do WSGI:

  • O roteamento suporta solicitações para exibição de chamadas funcionais, permitindo obter URLs limpos e dinâmicos.
  • templates - muitas ferramentas úteis que funcionam prontas para uso juntamente com suporte completo para mako, jinja2 e chita.
  • Utilitários - acesso conveniente a dados, download de arquivos, cookies, cabeçalhos e outros metadados relacionados ao HTTP.
  • servidor de desenvolvimento HTTP integrado que suporta as funções fapws3, bjoern, GAE, CherryPy e qualquer outro servidor HTTP com WSGI.

Esta é uma ótima solução para prototipagem, estudando a estrutura de estruturas da web e criando pequenos aplicativos.

Cherrypy



CherryPy é um framework web minimalista e de código aberto. Ele fornece a capacidade de criar aplicativos da Web Python, o que não é diferente de criar qualquer outro programa orientado a objetos.

De fato, esse aplicativo da Web baseado no CherryPy é um aplicativo Python independente, usando seu próprio servidor da web com vários threads. Os aplicativos CherryPy são executados em qualquer sistema operacional compatível com Python (Windows, MacOS, Linux etc.). Eles podem ser implantados em qualquer ambiente em que você possa executar um aplicativo Python comum. Você não precisa dos aplicativos Apache para CherryPy, pode executar o aplicativo CherryPy no Apache, como no Lighttpd ou no IIS.

CherryPy permite que você use qualquer tipo de tecnologia para padronização, acesso a dados, etc. Ele também pode processar artigos, estática, cookies, fazer upload de arquivos e tudo o mais que outras estruturas podem fazer.

Suas habilidades distintas:

  • Lançamento simples de vários servidores HTTP ao mesmo tempo;
  • poderoso sistema de configuração;
  • sistema de plugins flexível;
  • Recursos "prontos para uso": cache, decodificação, sessões, autenticação, conteúdo estático, etc;
  • Capacidade de trabalhar em Python 2.7+, Python 3.1+, PyPy, Jython e Android.

Estruturas assíncronas


Sanic

Sanic é uma estrutura Python criada no uvloop e projetada para processar rapidamente solicitações HTTP.

Funciona em Python 3.5+. O Sanic suporta manipuladores de solicitação assíncronos, tornando-o compatível com as funções assíncronas / de espera do Python 3.5. Isso aumenta muito a velocidade do trabalho.

Na referência ao processar 100 conexões, a Sanic mostrou a capacidade de processar 33.342 solicitações por segundo.

Tornado



Tornado é uma estrutura da Web Python e uma biblioteca de rede assíncrona ao mesmo tempo. Ele usa E / S de rede sem bloqueio e resolve o problema do C10k (o que significa que, se configurado corretamente, pode lidar com mais de 10.000 conexões simultâneas).

Tudo isso a torna uma excelente ferramenta para criar aplicativos que exigem alto desempenho e trabalham com dezenas de milhares de usuários ao mesmo tempo.

Principais vantagens:

  • Suporte de autenticação de usuário embutido
  • serviços em tempo real;
  • desempenho de alta qualidade;
  • Linguagem de modelo da web Python
  • Cliente HTTP sem bloqueio
  • implementação de esquemas de autenticação e autorização de terceiros (Google OpenID / OAuth, login no Facebook, Yahoo BBAuth, FriendFeed OpenID / OAuth, Twitter OAuth);
  • suporte para traduções e localizações.

Bônus


Dash



O Dash é uma estrutura Python de código aberto usada para criar aplicativos da web analíticos. É especialmente bom para profissionais de big data que não estão muito familiarizados com o desenvolvimento da web.

Os aplicativos Dash são servidores da Web que executam o Flask e trocam dados com pacotes JSON por HTTP. Sua interface fornece componentes com os recursos do React.js.

Os aplicativos desenvolvidos com o Dash são exibidos em um navegador da Web e podem ser implantados nos servidores. Os aplicativos de traço são inerentemente multiplataforma.

Como conclusão, podemos dizer que existem realmente muitas estruturas para desenvolvedores. Cada um deles oferece suas próprias oportunidades únicas. Mas a escolha da estrutura é uma decisão importante para o futuro do seu próprio projeto, e você não deve se apressar nisso.

A Skillbox recomenda:

Source: https://habr.com/ru/post/pt420119/


All Articles