Büyük django projeler için Proje tasarımı / FS düzeni

oy
40

Büyük bir django projesi düzeni için en iyi yolu nedir? öğreticiler uygulamaları, modelleri ve görünümleri kurmak için basit talimatlar sağlar, ancak uygulamalar ve projeler bozuldu nasıl olması gerektiği hakkında daha az bilgi vardır, ne kadar paylaşım Açıkçası tipik bir proje (içinde uygulamalar arasında gerekli / izin olduğunu büyük ölçüde bağlıdır genel şablonlar tutulmalıdır projesi) ve nasıl /.

Herkes örnekleri, öneri ve sahip mi açıklamaları belli bir proje düzeni diğerinden daha iyidir neden olarak? Ben birim testler (gerçek kod tabanının boyutunu 2-5x) ve dize haricileştirilmesinin / şablonlar çok sayıda kuruluş özellikle ilgileniyorum.

Oluştur 04/09/2008 saat 15:36
kaynak kullanıcı
Diğer dillerde...                            


6 cevaplar

oy
6

Bu sayfa benim bazı sorulara hitap iyi bir iş yapar: http://www.b-list.org/weblog/2006/sep/10/django-tips-laying-out-application/

özellikle:

  1. özel şablon etiketleri veya filtreleri tanımlamak için, uygulamanın dizin denilen templatetags bir alt dizin oluşturmak gerekir ve bir Python modülü olarak alınabilir, böylece bir dosya adında __init__.py içermelidir.
  2. otomatik Django'nın test çerçevesi tarafından fark edilecek birim testleri tanımlamak için, (bir dosya adı tests.py veya bir dizin adı verilen testler de olabilir) bir modül olarak adlandırılan testlerde koydu. test çerçevesi Ayrıca modülde herhangi doctestleri bulacaksınız, ama olanlar için tercih edilen bir yer elbette,, sınıflar ya da test etmek için tasarlanmış konum fonksiyonların Docstringler.
  3. Başvurunuz yüklendikten hemen sonra idam edilecek özel SQL sağlamak için, uygulamanın dizin içinde sql adında bir alt dizin oluşturmak; dosya isimleri üzerinde işlem edeceğiz tabloları modellerinin isimlerinin aynı olmalıdır; manken adında Girişi içeren web günlüğü adında bir uygulama varsa, örneğin, daha sonra uygulamanın dizin içinde dosya sql / entry.sql değiştirmek veya oluşturulduktan oldu en kısa sürede girişleri tabloya veri eklemek için kullanılabilir.

tests.py ve testlerin (dizin) hakkında not da bir dosya için pek çok test (veya modeller) yol olan sorununu çözmek yardımcı olan modeller için geçerlidir.

Hala yıkmak app / proje ve iyi iş büyük django siteleri için bazı örnekler / önerilerini görmek istiyorum.

Cevap 04/09/2008 saat 15:44
kaynak kullanıcı

oy
17

temel direklerinin başka büyük kod projesine benzer. Uygulamalar tek açıkça tanımlanmış sorumluluğu ele almalıdır. Adı "uygulama" yanıltıcıdır; Django uygulamalar gerçek uygulama oluşturmak için bir araya takılabilir yeniden kullanılabilir bileşenler olarak daha düşünülmelidir. Her uygulama için testler söz konusu uygulamanın içinde bulunan edilmelidir. Uygulamalar mümkün olduğunca birbirinden ayrılacağı edilmelidir ancak amaç mümkün olduğunca basit ve aklı başında bağımlılık grafiği tutmak olmalıdır kadar net, bağımlılıkları olacak.

(Bu uygulamalar arasında şablon adı çakışmalarını önler olarak, her bir uygulama için bir şablon alt dizin Django çok güçlü bir kongre olduğunu kullanarak) ben her bir uygulama için bir alt dizin ile, tek bir proje genelinde şablonları dizin altında bir proje için tüm şablonları tutmayı tercih . Tek bir proje çapında şablonlar dizininde nedeni şablonları, şablon kalıtım ağaçları ve blok isimleri oldukça projeye özel olabilir, nedenle herhangi bir projeye takabilirsiniz "varsayılan" uygulama şablonları sağlamak zor. Orada taban site genelindeki şablonlar ve onlar tanımlayan bloklar için standart adlandırma kuralları üzerinde yerleşmek için bazı girişimler olmuştur ama ortaya henüz bir standart görmedim (yolu onlar şeyi yeniden yapmak Pinax muhtemelen bir olmaya en yakın olan standart).

Kontrol - Eğer i18n ve l10n demek eğer "dizesi dışsallaştırma" Re, Django o po dosyaları koyar o ve standart yerler için güçlü destek gördüğünü dokümanlar .

Cevap 25/09/2008 saat 18:30
kaynak kullanıcı

oy
3

Pinax projesi kolayca projeye araya getirilir küçük yeniden kullanılabilir uygulamalar, fikri etrafında inşa edilmiştir. Onlar projeyi kullandım Bulut 27 demo projesi olarak.

Üzerinde çalıştığım Django projesi (. Bu ön-0.1, bu yüzden herhangi bir bağlantı yok. Basie denir) Pinax modeli takip etmeye çalışıyor ve şu ana kadar oldukça iyi çalışıyor.

Cevap 30/10/2008 saat 23:22
kaynak kullanıcı

oy
1

Benim şu anki düzen benim sitelerin bir test sürümü var isteyen kaynaklanıyor. Bu da farklı yapılandırmalar ihtiyaç beri, her site için iki projeyi sahip demektir ve projelerin dışında tüm uygulamaları taşımak için beni zorlar.

$ APP_ROOT / devel ve $ APP_ROOT / eşya: Ben iki klasör oluşturduk. Bunlar tüm uygulamaları içerir. (Benim durumumda GIT'de) kaynak kontrolü eşya uygulamalar PROD etiketine kilitli ederken, BAŞ revizyon sırasında devel uygulaması olan kullanma. şablonları da uygulamalar gibi aynı düzeni ile kendi klasör var.

Şimdi benim devel-apps klasöründe gelişimini ve eşleşen şablon klasörü tüm yapabiliyorum. Ben memnunum şey varsa, o revizyon ve güncelleştirme eşya etiketleyin.

Cevap 09/01/2009 saat 09:35
kaynak kullanıcı

oy
9

Ben Zachary düzeni oldukça yararlı buldum Revisited, Zachary Voase Blogu »Django Proje Sözleşmeleri.

Cevap 22/04/2010 saat 00:17
kaynak kullanıcı

oy
1

Gerçekten mi Randall Degges' Bu konuda yazı. O ayarları dosyalarını birlikte tutkal nasıl bilgi dışarıda bırakır, ama ben bağlamak mümkün olacak bu konuda bir yazı olacak ama şimdilik kimse kontrol edebilirsiniz benim repo ben Benioku'da biraz yön içerir nerede.

Cevap 21/07/2012 saat 11:40
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more