django将为已安装的应用程序做些什么



例如:

INSTALLED_APPS = ( 
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'southtut',
'southtut2',
)   

south是我安装到python环境中的一个模块。

southtutsouthtut2是我使用./manage.py startapp创建的django应用程序

我很好奇django会为安装好的应用程序做些什么。它只是将模块添加到sys.path中吗?

如果我想在我的django项目中安装一个应用程序,但不将其添加到INSTALLED_APPS列表中,我该怎么办。

不同之处在于使用其django功能时。

例如:

  • 当您想要创建应用程序的模型时
  • 当你想从管理页面浏览应用程序模型时
  • 当你想从应用程序的url模式访问应用程序的视图时
  • 当你想测试你的应用程序时
Django使用INSTALLED_APPS做各种事情。基本上,如果一个应用程序想要提供一些将被Django核心功能使用的东西,就必须将其添加到INSTALLED_APPS中。

示例包括:

  • 模型:Django为所有安装的应用程序加载模型。
    • 如果您想通过名称引用另一个应用程序中的模型,则必须安装第一个应用程序
    • 这些模型也将出现在Django Admin界面中
    • 这也确保了建立反向关系或尽早连接信号
  • 模板:使用默认配置,Django在已安装应用程序的"模板"目录中搜索模板。请参见TEMPLATE_LOADERS
  • 静态文件:"collectstatic"、"findstatic"和开发静态文件服务器将在已安装的应用程序中搜索静态文件。请参阅STATICFILES_FINDERS
  • 翻译也是从已安装的应用程序中发现的。请参阅Django如何发现翻译
  • Django管理命令也将在已安装的应用程序中发现

该列表可能会被扩展。

请注意,未添加到INSTALLED_APPS的应用程序仍然有用,例如:

  • 导入urls并使用视图会很好
  • 自Django 1.6以来,测试发现不再局限于已安装的应用程序,请参阅任何测试模块中的测试发现

相关内容

  • 没有找到相关文章

最新更新