Bu sorunun en iyi cevabı Andrew Godwin (Django çekirdek geliştiricisi) tarafından verilmektedir:
Bence uygulamaların temel amacı, yeniden kullanılabilir bileşenlerin mantıksal olarak ayrılmasını sağlamaktır - özellikle modeller / admin / vb. İçin birinci sınıf bir ad alanı. - ve her şeyi "açmak" veya "kapatmak" için kolay bir yol sağlamak.
Bazı açılardan bu, Django'nun yaratıldığı zamanın bir kalıntısıdır - Python paketleme ve modülleri çok daha az geliştiğinde ve temelde soruna kendi çözümünüze sahip olmanız gerektiğinde. Bununla birlikte, yine de Django'nun zihinsel modelinin temel bir parçası ve INSTALLED_APPS'nin hala Python'un alternatif giriş noktaları teklifinden daha temiz ve daha kolay bir çözüm olduğunu düşünüyorum (bu, bir ortamda yüklü olan ancak sizin yapmadığınız bir paketi devre dışı bırakmayı oldukça zorlaştırıyor. kullanmak istemiyorum).
Bugün uygulama konseptinden özellikle ayrıştırılabileceğini düşündüğünüz bir şey var mı? Modeller ve yöneticinin otomatik keşif ve benzersiz bir ad alanı öneki için buna ihtiyacı var, bu yüzden bunu geri almak zor ve ihtiyacınız olan diğer özellikleri düşünmekte zorlanıyorum (aslında, istediğiniz tek şey sadece bir kitaplıksa, bunu yapabilirsiniz normal bir Python - modelleri, şablonları veya IIRC yönetici kodunu göndermediğiniz sürece uygulama sarmalamaya gerek yoktur)