web2py, Django'dan çok esinlenmiştir ve eğer birini biliyorsanız, diğerini öğrenmek kolaydır. Django'da bulamadığımız bazı özellikleri ekledik: veritabanı geçişleri (otomatik olarak tabloları değiştir), hatalardaki biletler, web tabanlı bir IDE, Google App Engine üzerinde çalışan bir veritabanı soyutlama katmanı, takılabilir girişe sahip bir rol tabanlı erişim kontrol mekanizması modüller.
Temel tasarım farklılıklarından biri, Django uygulamalarında modül olarak uygulandığı ve bu nedenle bunları düzenlediğinizde sunucuyu yeniden başlatmanız gerektiğidir. Web2py'de Modeller/Görünümler/Denetleyiciler modüller değildir, çerçeveler tarafından yürütülür (içe aktarılmaz) ve bu nedenle değiştirdikten sonra sunucuyu yeniden başlatmanız gerekmez.
Django'nun bir ORM kullandığı başka bir fark, web2py'nin bir DAL kullanmasıdır. DAL, Django ORM'den biraz daha düşük seviyededir ve bu, SQL sözdizimine daha yakın hale getirir (örneğin, sol birleştirmelere, keyfi kümelere, yuvalanmış seçimlere ve bunların kombinasyonlarına izin verir) taşınabilir kalırken (10 farklı veritabanını destekliyoruz). DAL, modellerin dinamik bir şekilde meta-programlanmasını da kolaylaştırır (örneğin, XML veya CSV dosyası gibi dosyada saklanan özelliklere dayalı olarak çalışma zamanında modeller oluşturmak gibi).
Django daha uzun süredir bu sayede daha fazla kişi bu konuda yetenekli ve daha fazla uygulama dağıtılmış durumda.
İlk önce Python'u bildiğinizden emin olmalısınız.Web2py, ortak Python kodu işe yaramadı - genel ad alanı bir karmaşa, birçok şey dolaylı olarak içe aktarılıyor, web2py'nin iç kodunu _pythonic_ olarak çağırmak zor oluyor ve bazen duvara çarpıyorsunuz (örneğin, 'db' veritabanını tanımlarsanız 'db.py'de öğreticinin önerdiği gibi, global 'db' değişkeninin' models.py' ve ör.' people.py' içinde, ancak 'contacts.py' içinde değil olarak erişilebilir. Sadece web2py'nin çalışma şeklini değil, Django kodunun işleyiş şeklini yeniden kodlamanızı tekrar öğrenmeyi öğrenin. – Tadeck