python - 中大型站点的项目根目录中通常有十几个 django 应用程序吗?不觉得臃肿吗?

标签 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',
)

这确实有点臃肿。但我认为这真的没有看起来那么糟糕,因为 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/

相关文章:

python - 了解正则表达式

python - 如何修复Python Neat Openai Retro中的配置错误

python - 使用 python 在内存中(即时)创建包含大量小文件的大 zip 存档

python - Django Query distinct values 有效但我不能使用查询结果

python - 我想将 .html 中的两个 id 发布到 View 中

python - 子域和登录

django - 为什么 __init__() 和 get_context_data() 中对象的属性不同?

python - 使用 pdfkit 和 FastAPI 下载 PDF 文件

python - seaborn jointplot 按密度颜色

python - Django 测试 - 'HTTP_USER_AGENT' 测试客户端的关键字参数无效