我正在查看 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',
)
这确实有点臃肿。但我认为这真的没有看起来那么糟糕,因为 django 只使用请求的内容,因为它不会根据请求加载每个应用程序,但只有在它被调用时才加载?如果不是,有人可以揭开这个过程的神秘面纱吗?
最佳答案
我认为在您的 INSTALLED_APPS
中找到很多应用程序是很常见的。为了在你的包/目录结构中保留一些系统,我认为将你的应用程序放在 apps
folder within your project root 中是值得推荐的。 ,在保留其他第三方应用程序的同时,您不要触及 PYTHONPATH
上的其他地方。我认为使用类似 PIP and virtualenv 的东西是非常值得推荐的。跟踪您的应用程序并组织它们。
在这里您可以阅读另一篇关于 useful directory structure for django projects 的文章.
如果一个应用程序在你的 INSTALLED_APPS
中,django 总是会在启动时加载它的模型并用这些类填充它的 APP_CACHE
,但我认为这是一个你可以忽略的开销如果你正在处理传统的应用程序......
编辑:还要考虑到应用程序的复杂性差异很大,例如。像 tinymce
之类的东西主要只提供一个小部件和一些 View ,但没有模型,所以如果不使用它,它只是向 urlresolver 添加一些 url,仅此而已......
关于python - 中大型站点的项目根目录中通常有十几个 django 应用程序吗?不觉得臃肿吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962177/