Turbogears 2 vs Django - qualquer conselhos sobre como escolher substituto para Turbogears 1?
-
12-09-2019 - |
Pergunta
Eu tenho usado Turbogears 1 para prototipagem pequenos sites para o último par de anos e ele está ficando um pouco longo no dente. Todas as sugestões sobre como fazer a ligação entre a actualização para Turbogears 2 ou mudar para algo como Django? Estou dividido entre a familiaridade da comunidade TG, que são muito sensíveis e fazer a documentação muito bom contra a comunidade muito maior usando Django. Estou muito tentado pelo built-in CMS apresenta eo suporte do Google AppEngine.
Qualquer conselho?
Graças
.M.
Solução
Eu tenho experiência com tanto Django e TG1.1.
IMO, TurboGears ponto forte é a sua ORM: SQLAlchemy. Eu prefiro TurboGears quando o lado do banco de dados de coisas não é trivial.
ORM do Django não é assim tão flexível e poderosa.
Dito isto, eu prefiro Django. Se o esquema de banco de dados é um bom ajuste com ORM do Django eu iria com Django.
Na minha experiência, é simplesmente menos problemas para usar o Django em comparação com TurboGears.
Outras dicas
TG2 é construído em cima de postes que tem uma comunidade bastante grande também. TG foi mais rápido em comparação com TG1 e inclui um mecanismo de cache per-método (e não apenas páginas da web). Eu acho que é mais AJAX-friendly do que Django pela forma como as páginas podem ser easly publicado em HTML ou JSON.
2011 atualização: após 3 anos de estruturas inchadas Eu sou um usuário feliz da http://bottlepy.org/
Eu tenho usado Django por um ano agora e quando eu comecei eu não tinha experiência de Python ou Django e achei muito intuitivo de usar.
Eu criei um número de amadores App Engine do Google Apps usando Django com o último sendo um CMS para o meu site. Usando Django significou que eu fui capaz de código muito mais rápido e com muito menos bugs.
Am certeza de que teria lido a partir de abundância de comparação entre TurboGears e Django no web.
Mas, como para a sua tentação no CMS e GAE, eu posso realmente acho que você tem que ir Django caminho. Verifique estes para fora, e decidir o youself.
TG2 parecer muito complicado e confuso, até mesmo para fazer algo simples como uma página de login com mensagens de erro multimple Como estender o Turbogears 2.1 de login funcionalidade Eu acho que isso é por causa da intemperança no modularidade ...
Django ORM usa a implementação registro ativo - você verá esta implementação na maioria ORMs. Basicamente, o que ele significa é que cada linha da base de dados é directamente mapeados para um objecto no código e vice-versa. frameworks ORM, como Django não vai exigir predefinir o esquema para utilizar as propriedades no código. Você só usá-los, como o quadro pode ‘compreender’ a estrutura, olhando para o esquema do banco de dados. Além disso, você pode simplesmente salvar o registro no banco de dados, como é mapeado para uma linha específica na tabela.
SQLAlchemy usa a implementação de Data Mapper - Ao utilizar este tipo de aplicação, há uma separação entre a estrutura de banco de dados e estrutura de objetos (eles não são 1: 1 como na implementação Active Record). Na maioria dos casos, você terá que usar uma outra camada de persistência para manter interagir com o banco de dados (por exemplo, para salvar o objeto). Então você não pode simplesmente chamar o save () método como você pode ao usar a implementação Active Record (que é um con) mas, por outro lado, você código não tem que saber toda a estrutura relacional no banco de dados para a função , já que não há relação direta entre o código e banco de dados.
Então, qual deles ganha esta batalha? Nenhum. Depende do que você está tentando realizar. É o meu acreditam que, se sua aplicação é uma aplicação principalmente um CRUD (criar, ler, atualizar, excluir) que há regras rígidas e complexas para aplicar sobre as relações entre as diferentes entidades de dados, você deve usar a implementação Active Record (Django). Ele permitirá que você facilmente e rapidamente criar um MVP para o seu produto, sem qualquer aborrecimento. Se você tem um monte de “regras de negócio” e restrições em suas aplicações, você pode ser melhor com o modelo Data Mapper, como ele não vai amarrá-lo e forçá-lo a pensar estritamente como Active Record faz.
Ive só tenho uma pergunta ... é o aplicativo que você está desenvolvendo dirigido para redes sociais ou lógica de negócios personalizada?
Eu pessoalmente acho Django é bom para redes sociais e postes / turbogears se você realmente querem a flexibilidade e sem limites ...
apenas a minha 2c