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.

Foi útil?

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.

Django com GAE

Django para CMS

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top