senhor
Uma pergunta recorrente na lista Python Brasil é: "qual é o melhor framework web para Python?".
Existe quase que um consenso a respeito da qualidade dos frameworks web em Python: eles vão resolver o seu problema. Cada um com seu estilo, mas você não vai ficar na mão. Eles estão sendo atualizados e suas comunidades são bem ativas.
Mas o que seria uma boa notícia, traz um inconveniente: se todos são bons, qual escolher?
Segue abaixo uma lista não exaustiva, escrita com minhas opiniões a respeito das diferenças entre Web2py e Django que te ajudam ou te atrapalham no dia-a-dia.
Django tem mais mercado de trabalho. Se você ler uma oferta de vaga para Python que cite um framework, vai ler Django nela. Portanto, se você quer escolher o framework baseado na quantidade de vagas do mercado, pode parar de ler esse post aqui mesmo. Sua escolha é Django. Bons estudos, djangonauta. Mas se você quer conhecer um pouco mais sobre abordagens diferentes, vamos continuar.
A primeira diferença é de nomenclatura. O Web2py usa o conceito MVC (Model-View-Controller) comum, amplamente conhecido. O Django usa o MVT (Model-View-Template). Ou seja, o que todos chamam de View, o Django chama de Template. O que todos chamam de Controller, o Django chama de View.
O Django tem uma abordagem bem linha de comando, como o Rails que conheci há quase 4 anos. Seguindo a tendência da maioria dos frameworks modernos (também o Web2py), ele trabalha com "convention over configuration". Como sabemos, essa abordagem acelera o início do desenvolvimento e deixa a estrutura da aplicação mais clara. O Web2py deixa você fazer algumas coisas por uma interface web. Se você quiser é possível editar todo seu projeto pela web, no servidor local de testes. Você não é obrigado a fazer assim, mas pode se quiser.
O Django adere ao conceito "explicit is better than implicit". Isso significa que em toda view (o que o Web2py chama de controller) você terá que