2009-12-10 11 views
11

Web2py ile görece daha aşina olduğum için, Django'ya bir şeyler vermek istiyorum.Web2py geliştiricileri için Django

Temel farklılıklar nelerdir?

Web2py bilgisini dikkate almaya başlamanın en etkili yolu ne olurdu? (Hiçbir bazı piton uygulama çerçevesi bilgiye sahip yardımcı olmalıdır?) Her iki kullandıysanız

Ayrıca

, bir tercih edildiği görüşünü ve neden sunabilir DÜZENLEME?

+1

İ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

cevap

25

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.

+4

Kodunuzu değiştirdiğinizde Django sunucunuzu yeniden başlatmanız gerekmez (http://www.djangoproject.com/weblog/2005/jul/20/autoreload/). Bu durum 2005'in ortalarından beri geçerli gibi görünüyor. – MikeWyatt

+2

Hayır, eğer Django sunucusunu kullanırsanız, fakat - eğer yanılmıyorsam - Apache + mod_wsgi veya mod_python ile Django çalıştırırsanız Apache'yi yeniden başlatmanız gerekir. Web2py'de, yerleşik olanı kullanmasanız bile web sunucusunu yeniden başlatmanız gerekmez. – mdipierro

+1

Apache'yi yeniden başlatmanız gerekmez, mod_wsgi veya fcgi'yi yeniden yükleyebilirsiniz. – rapadura

6

Bazı python framework'leri hakkında bilgi sahibi olmak kesinlikle yardımcı olur.

En etkili yol, iki, yani Modeli, View, Kontrolör, URL Sevk, Şablonlar, Formlar, farklı sektörleri karşılaştırmak istiyorsunuz başlamak için vb

Here birkaç çerçeveler biri büyük bir karşılaştırma . Eminim yardımcı olacaktır.

+0

Bağlantı artık çalışmıyor. Bağladığınız kaynağı bulabilir ve güncelleyebilir misiniz? Harika olurdu. Teşekkürler. – Tadeck

4

Web2py'ye yerleşmeden önce bir Django programcısıydım. Web2py ile kendimi daha verimli buldum, muhtemelen mantıklı varsayılanlar (örtük ithalatlar, varsayılan görünümler, vb.) Ve forum'daki büyük destek nedeniyle.

9

Tamamen Django'da küçük bir şirket içi web uygulaması yaptım ve daha sonra tamamen web2py'de. Farklılıkları ve geliştirici deneyimleri üzerindeki etkisini gerçekten anlamanın tek yolu budur.

Web2py'yi tercih ederim, çünkü Django tarafından sunulan ortamdan daha fazla kolaylık var, ancak web2py Django'dan çok daha yeni ve arkadan bakış her zaman yeni uygulamaları daha kolay hale getiriyor. Web2py geriye dönük uyumluluğu garantilediğinden, bazı yeni araçların web2py'yi birkaç yıl içinde güncelliğini yitirmesi tamamen mantıklıdır. Bu, şeylerin normal yolu. Her neyse, birbirlerinden çok daha yakındırlar, her ikisi ile karşılaştırıldığında diğer herhangi bir web çerçevesinden çok daha fazladırlar.Örneğin, Java tabanlı bir web çerçevesinin bakış açısından, birbirleriyle neredeyse aynı görünebilir.

+1

İyi nokta, +1. Ancak, her iki çerçevede daha özelleştirilmiş, daha gelişmiş bir şey yapmaya çalıştığınızda _real_ farkları açıkça görülebilir. Django'nun Web2Py'den üstün olduğunu görebildiğinize inanıyorum, çünkü uygulamanızda neler olduğu konusunda net bir fikir varsa, Web2Py'nin tüm özellikleri de Django'da kolayca uygulanabiliyor. Django'da web tabanlı IDE'nin olmaması gibi bazı farklılıklar var (belki de bunun için bir modül var), fakat en azından Django çeşitli IDE'ler tarafından uygun şekilde yorumlanıyor ve son derece özelleştirilebilir ve kararlı. – Tadeck

+2

@Tadeck: web2py ile ilgili deneyimlerime ilişkin olarak, siteleri başarıyla gönderdim, uygulamalarda neler olup bittiği konusunda çok açıktı, özellikleri yeniden oluşturmak zorunda kalmadım, bir IDE'de web2py'yi kullanıyorum (PyDev Eclipse), gövde koduna katkıda bulundu Deneyimli mükemmel istikrar (web2py, ileriye dönük uyumluluk sağlar!), web2py kitabına katkıda bulundu ve genel olarak dostça bir toplulukla etkileşimden keyif aldı. Bütün bu şeylerin Django ile de mümkün olduğundan eminim. Sadece söylüyorum'. –

11

Django = eski Web2py = new

şey Django yapar web2py iyi yapar.

  1. Django inanılmaz belgelerine sahiptir:)

    Ana fark ve ne web2py beni tutuyor; web2py django sonra uzun yapıldığı ve Django'nın hatalarından ders çünkü hepsi yeni hatalar yapar gerçi bu olduğunu ... web2py o kadar sezgiye ihtiyaç duymuyor ki o kadar fazla ... HOWEVER! Django belgelerinin çoğu için web2py'ye uygulanabilir olduğunu buldum. Bir gün geçirir ve django kitabını okursanız (Ch 1-7), bunun nasıl doğru olduğu hakkında fikir edinirsiniz. Yani bir şekilde Django'nun daha iyi belgelendiğini söylemek asinindir. Ayrıca, belgelerin hacimleri hakkında iyi bir şey olarak bahseden herhangi bir çerçevenin, endişe duyduğuna dikkat edin ... dokümantasyon iyidir, daha iyisi ile başlamak için daha iyi değildir. Web2py'nin mevcut dokümanları, kullanıcıların% 90'ının ihtiyaçlarını karşılayandan daha fazla. Kalan% 10'luk çerçeve kütüphanesi koduna bakmalı (Django kadar değil, korkutucu değil). Ayrıca, zamanınızın% 30'undan fazlasının kütüphane kodundan geçtiği noktaya ulaşırsanız, çerçevelerden uzaklaşma ve kütüphane koleksiyonlarına (pilonlar gibi) doğru hareket etme zamanıdır. Bu noktada, web çerçeveleri işlemek için tasarlanmış bir şey yapmadığınız anlamına gelir ...

  2. Django'da SQLForm TextModel'dir. TextModel (= SQLForm) kullanarak bir form oluşturduktan sonra. Tek bir giriş alanının CSS'sini değiştirmeye çalışmak için bol şans! Web2py'de sadece form.element() yaparsınız, Django'da böyle bir şey yoktur. "Widget()" ile devam etmelisiniz, ancak widget'a geçmek için, önce giriş alanı türünden geçmelisiniz, vs ...

  3. Ayrıca, el ile DB geçişi ... şema değiştirilsin mi? Maalesef ... ayrı bir taşıma uygulaması (Güney) indirip yüklemeniz veya DB konsolunuzda manuel olarak yapmanız gerekir.

  4. Son olarak, hiçbir çoklu veritabanları ... için kutu desteğinin dışında ... Django ile ... Diğer bir deyişle ...

basketbol düşünüyorum atlama ve çemberler seversin.

gerçekten web2py ileri bir sıçrama almak istiyorsanız, Pylons ... cidden ...

web2py ait

En büyük dezavantajı onun yaşı ve daha küçük kod üssü ... Bu olsa mantıksız değildir dikkate deneyin Django, RAILS stil RAD fikirlerini uygulayan ilk python web çerçevesi gibidir ve web2py'nin iki katı gibidir. Web2py hala hayatının erken evlatlık kesiminde ... Django ötesindeki kritik kitlesel bir kısımda düşüşe geçiyor ... web2py, önümüzdeki 2 yıl içinde kritik kütleye ulaşmalı.

SONUÇ Django kitabı (ch 1-7) okumak, bir gün geçirin ve Pylons kitabı (Bölüm 1) okumak ve sonra başlamak için bir çerçeve kullanıyor sebepleri üzerine düşünün. Benim için mümkün olduğu kadar çabuk bilerek, ve zamanın% 30'unu belgelemeye gerek kalmadan yapmaktı.

Web2py benim için yukarıdaki gereksinimleri karşılar.