O que é py4web?

PY4WEB é um framework web para desenvolvimento rápido de aplicações web banco de dados orientado eficientes. É uma evolução do quadro web2py popular, mas muito mais rápido e mais lisa. Seu design interno tem sido muito simplificada em comparação com web2py.

PY4WEB pode ser visto como um concorrente de outros frameworks como Django ou Flask, e pode de fato servir ao mesmo propósito. No entanto, objetivos PY4WEB para fornecer um conjunto de recursos maior fora da caixa e reduzir o tempo de desenvolvimento de novos aplicativos.

De uma perspectiva histórica nossa história começa em 2007, quando web2py foi lançado pela primeira vez. web2py foi projetado para fornecer uma solução all-inclusive para desenvolvimento web: um zip arquivo contendo o interpretador Python, o quadro, um baseado na web IDE, e uma coleção de pacotes de batalha-testadas que funcionam bem juntos. De muitas maneiras web2py tem sido extremamente bem sucedido. Web2py conseguido proporcionar uma baixa barreira de entrada para novos desenvolvedores, uma plataforma de desenvolvimento muito seguro e permanece para trás compatíveis até hoje.

Web2py sempre sofreu de um problema: seu design monolítico. Os desenvolvedores do Python mais experientes não entender como usar seus componentes fora do quadro e como usar componentes de terceiros no quadro. Este foi por uma boa razão, uma vez que não se importam muito sobre eles. Pensamos em web2py como uma ferramenta perfeita que não tem que ser quebrado em pedaços, porque isso iria comprometer a sua segurança. Descobriu-se que estávamos errados, e jogar bem com os outros é importante. Assim, desde 2015, trabalhou em três frentes:

  • Nós portado web2py para Python 3.

  • Nós quebramos web2py em módulos que podem ser usados ​​de forma independente.

  • Nós reagrupados alguns desses módulos em uma nova e mais modular quadro … PY4WEB.

PY4WEB is more than a repackaging of those modules. It is a complete redesign. It uses some of the web2py modules, but not all of them. In some cases, it uses other and better modules. Some functionality was removed and some was added. We tried to preserve most of the syntax and features that experienced web2py users loved.

Here is a more explicit list (see De web2py para py4web for more details if you come from web2py):

  • PY4WEB, ao contrário web2py, requer Python 3.

  • PY4WEB, ao contrário web2py, pode ser instalado usando pip e suas dependências são gerenciados usando requirements.txt.

  • Aplicativos PY4WEB são módulos regulares Python. Isto é muito diferente para web2py. Em particular, abandonou o importador de costume, e contamos agora exclusivamente no mecanismo regular de importação Python.

  • PY4WEB, como web2py, podem servir múltiplas aplicações concorrentemente, enquanto as aplicações são submódulos do módulo de aplicações.

  • PY4WEB, ao contrário web2py, é baseado em bottlepy e em usos particulares do objeto do pedido Garrafa e o mecanismo de roteamento de Garrafa.

  • PY4WEB, ao contrário web2py, não cria um novo ambiente em cada solicitação. Ele introduz o conceito de luminárias para explicitamente declarar que objetos precisam ser quando uma nova solicitação HTTP é processado inicializado-re. Isso torna muito mais rápido.

  • PY4WEB, tem um novo objeto sesson que, como a do web2py, fornece segurança forte e criptografia dos dados da sessão, mas as sessões não são mais armazenadas no sistema de arquivos - o que criou problemas de desempenho. Ele fornece sessões de cookies, em Redis, no memcache, ou no banco de dados. Também limita os dados da sessão a objetos que são JSON serializado.

  • PY4WEB, como web2py, tem um built-in sistema de bilhética, mas, ao contrário web2py, este sistema é global e não por aplicação. Os bilhetes já não são armazenados no sistema de arquivos com os aplicativos individuais. Eles são armazenados em um único banco de dados.

  • PY4WEB, como web2py, é baseado em pydal mas usa alguns novos recursos de pydal (RESTAPI).

  • PY4WEB, como web2py, usa a linguagem de template yatl mas o padrão é suportes delimitadores quadrados para evitar conflitos com modelo quadros JS, como Vue.js e angularjs. Yatl inclui um subconjunto dos ajudantes web2py.

  • PY4WEB, ao contrário web2py, usa a biblioteca pluralização para a internacionalização. Na prática, isso expõe um objeto T muito semelhante ao do web2py T mas fornece melhor cache e capacidades pluralização mais flexíveis.

  • PY4WEB vem com um painel APP que administrador substitui do web2py. Esta é uma IDE web para carregar / gestão / aplicativos de edição.

  • Painel de PY4WEB inclui uma interface de banco de dados baseado na web. Isto substitui a funcionalidade AppAdmin de web2py.

  • PY4WEB vem com um objeto Form que é semelhante ao SQLFORM do web2py mas é muito mais simples e mais rápido. A sintaxe é a mesma. Este foi fornecido, a fim de apps existentes portuários ajudam os usuários; mas PY4WEB incentiva usando formas API baseada sobre postbacks.

  • PY4WEB vem com um objeto Auth que substitui o web2py. É mais modular e mais fácil de estender. Fora da caixa, ele fornece a funcionalidade básica do registo, login, logout, de alteração de senha, solicitação de alteração de senha, editar o perfil, bem como a integração com o PAM, SAML2, LDAP, OAUTH2 (google, facebook e Twitter).

  • PY4WEB vem com alguns utilitários como “tags”, por exemplo, que permite adicionar tags pesquisáveis ​​a qualquer banco de dados tabela. Ele pode ser usado, por exemplo, para usuários de tag com grupos e usuários de pesquisa por grupos e aplicar permissões com base na associação.

  • PY4WEB vem com com alguns componentes personalizados Vue.js projetados para interagir com o PyDAL RESTAPI, e com PY4WEB em geral. Essas APIs são projetados para permitir que o servidor para definir políticas sobre quais operações um cliente é permitido para executar, mas dá a flexibilidade cliente dentro dessas restrições. Os dois principais componentes são mtable (que fornece uma interface baseada na web para o banco de dados semelhante à grade do web2py) e auth (uma interface personalizável à API Auth).

O objetivo do PY4WEB é e continua a ser o mesmo que web2py de: para o desenvolvimento web make fácil e acessível, enquanto a produção de aplicações que são rápidos e seguros.

Acknowledegments

Many thanks to everyone who has contributed to the project, and especially:

Special thanks to Sam de Alfaro, who designed the official logo of py4web. We friendly call the logo «Axel the axolotl»: it magically represents the sense of kindness and inclusion we believe it’s the cornerstone of our growing community.

_images/logo.png