在您的项目根目录中为中高规模站点提供十几个django应用程序是否典型?它不觉得臃肿吗?

med*_*iev 4 python django

我在看django-mingus的INSTALLED_APPS:

INSTALLED_APPS = (
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.sites',
  'django.contrib.admin',
  'django.contrib.sitemaps',
  'django.contrib.flatpages',
  'django.contrib.redirects',

  'django_extensions',
  'tagging',
  'djangodblog',
  'disqus',
  'basic.inlines',
  'basic.blog',
  'basic.bookmarks',
  'basic.media',
  'oembed',
  'flatblocks',
  'dbtemplates',
  'navbar',
  'sorl.thumbnail',
  'template_utils',
  'django_proxy',

  'django_markup',
  'google_analytics',
  'robots',
  'basic.elsewhere',
  'compressor',
  'contact_form',
  'honeypot',
  'sugar',
  'quoteme',
  'mingus.core',
  'debug_toolbar',

  'django_twitter',
  'django_bitly',
  'staticfiles',
  'tinymce',
  'django_wysiwyg',
  'cropper',
  'memcache_status',
  'request',
)
Run Code Online (Sandbox Code Playgroud)

这确实有些臃肿.但我认为这真的没有它看起来那么糟糕,因为django只使用所请求的内容,因为它不会为每个请求加载每个应用程序,但只有在它被调用时?如果没有,有人可以揭开这个过程的神秘面纱吗?

Ber*_*ant 5

我认为在你的网站上找到很多应用程序是很常见的INSTALLED_APPS.为了将一些系统保留在您的包/目录结构中,我认为建议将您的应用程序放在apps项目根目录中文件夹中,同时保留其他第三方应用程序,不要触摸您的其他地方PYTHONPATH.我认为使用像PIP和virtualenv之类的东西来跟踪你的应用并组织它们是非常值得推荐的.在这里,您可以阅读另一篇关于django项目有用目录结构的文章.

如果你的INSTALLED_APPSdjango中的应用程序将始终在启动时加载其模型并APP_CACHE使用这些类填充它,但我认为如果你正在处理传统应用程序,这是一个你可以忽略的开销......

编辑:还要考虑应用程序的复杂性变化很大,例如.类似tinymce主要只是提供一个小部件和一些视图,但没有模型,所以如果不使用它只是添加一些网址到urlresolver,那就是...