Qual dessas duas estruturas é mais adequada para um desenvolvedor com 11 meses de experiência. Decidi aprender python para minha codificação do lado do servidor e queria saber qual deles seria mais adequado para alguém com meu nível de habilidade. Acabei de passar alguns dias brincando com o web2py e realmente gosto dele, e estou me perguntando se o Django oferece algo mais que estou perdendo?
PS. ATUALIZAÇÃO: Obrigado a todos pela contribuição maravilhosa, depois de comprar três livros de django e passar por alguns pequenos projetos / tutoriais para django e web2py, optei por web2py. Esta é uma estrutura maravilhosa, que torna o desenvolvimento web muito divertido para um novato. Eu recomendaria a todos os iniciantes que aprendessem essa estrutura, pois ela será a tendência no futuro. Django também é um framework maravilhoso, mas web2py é apenas melhor na minha opinião de experiência limitada.
Respostas:
(isenção de responsabilidade: eu sou o líder do projeto para web2py)
Django existe há cerca de 5 anos a mais que o web2py, portanto, tem mais usuários e mais aplicativos para exibir. Django tem o que eles chamam de "admin", que não é o mesmo que "admin" do web2py, mas é mais parecido com o "appadmin" do web2py. O "admin" do Django é melhor e mais personalizável do que o "appadmin" do web2py. Django não possui o equivalente ao "admin" do web2py. (desculpe a confusão de nome).
web2py é mais compacto e tem mais funcionalidades prontas para uso (mais bancos de dados suportados, IDE baseado na web, sistema de tíquetes, roda em GAE sem patches, métodos de login múltiplos, controle de acesso baseado em função, interface de tradução baseada na web, suporte para múltiplas conexões de banco de dados transações distribuídas e muito mais).
Para mim, a funcionalidade mais importante do web2py são as migrações automáticas. Django não os fornece fora da caixa.
Para web2py, a compatibilidade com versões anteriores de longo prazo é o objetivo principal, junto com a segurança. Django é comparável ao web2py em termos de segurança (exceto que web2py tinha prevenção de CSRF e escape padrão em templates antes deles), mas Django quebrou a compatibilidade com versões anteriores quando 1.0 foi lançado. web2py nunca o fez desde outubro de 2007.
Para mim, a sintaxe web2py é mais natural:
db(db.tablename.fieldname <= value).select() # web2py Tablename.objects.filter(fieldname__lt=value) # Django
Não tenho conhecimento de nenhuma funcionalidade do web2py que não esteja presente no Django. Já fiz essa pergunta muitas vezes porque, se houver, queremos adicioná-la ao web2py, mas ainda não recebi uma resposta satisfatória.
Claro que há coisas que ambos fazemos, mas de forma diferente. Django segue "explícito é melhor do que implícito". web2py não segue e segue "tudo deve ter um comportamento padrão". Acredito que isso torna o código e a configuração do web2py mais compactos.
De qualquer forma, seja qual for sua escolha, ambos são bons e sólidos frameworks web e existem menos semelhanças do que diferenças. Os desenvolvedores do Django são pessoas muito inteligentes.
A comunidade web2py é muito amigável. Como experiência, tente fazer uma pergunta no grupo web2py google e no grupo Django.
fonte
db(db.tablename.fieldname <= value).select()
"), porque ele não se parece com Python (a parte entre colchetes não está atribuindo valor a um dos parâmetros, mas apenas passandoTrue
/False
). É padrão para web2py ou o código que você forneceu é apenas uma versão simplificada do código web2py da vida real? Talvez a parte entre colchetes deva ser colocada entre aspas? Por favor explique.Tanto o Django quanto o web2py são excelentes frameworks web 'full stack' com recursos e capacidades semelhantes - você não estará 'perdendo' muito como um iniciante com qualquer um dos frameworks.
É difícil responder à sua pergunta sem saber mais sobre o que você quer fazer com o seu aprendizado. Alguns diriam que existe o perigo de aprender a estrutura e não a linguagem, então pode ser melhor obter um entendimento mais profundo da linguagem Python e estruturas mais leves (por exemplo, Flask ou wekzeug ) primeiro.
Dito isso, web2py tem uma curva de aprendizado inicial menor do que Django, pois foi projetado especificamente como uma ferramenta de aprendizado . Então, eu diria que você fez uma boa escolha. Nenhum aprendizado é desperdiçado e se você decidiu que precisa de algo mais no futuro, as boas técnicas que você aprendeu usando o web2py não serão desperdiçadas.
Embora existam mais recursos de aprendizagem para Django, já que já existe há mais tempo e tem mais usuários, aprender web2py também é rápido por causa do excelente livro e respostas quase instantâneas às perguntas do grupo de usuários .
Se você está procurando um emprego, existem mais empregos Django, então isso pode ser um fator. Dito isso, a comunidade web2py recentemente criou experts4solutions onde você pode promover suas habilidades e disponibilidade no futuro.
Diverta-se!
fonte
Sou um novato completo com Web2py e DJango, mas queria um framework web que fosse python para brincar, aprender e criar um front end para um banco de dados simples. Olhei para o web2py mas não consegui encontrar nenhum tutorial decente, direcionado a novatos, quando instalei o web2py, o que foi muito fácil, não sabia o que fazer a seguir, parecia não haver nenhum tutorial que me orientasse como construir um aplicativo da web simples (não apenas hello world). Por outro lado, o DJango escreveu seu primeiro aplicativo DJango, parte 1 . Isso tem sido muito bom, dando a um novato uma introdução sobre como configurar e usar a estrutura escrevendo um aplicativo da web simples. Até que o Web2Py ofereça isso, meu voto vai para DJango.
fonte
Em muitas palavras: (como eu entendi)
Web2py é definitivamente mais fácil e torna o código mais simples e limpo. Mas o Django dá a você um melhor entendimento do que está acontecendo e também mais poder para modificar o design / processo.
Web2py tem mais foco em "simples é melhor que complexo", mas Django tem mais foco em "explícito é melhor do que implícito". Duas partes de The Zen of Python, então é muito difícil dizer qual framework é mais Python.
fonte