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环境中的一个模块。
southtut
和southtut2
是我使用./manage.py startapp
创建的django应用程序
我很好奇django会为安装好的应用程序做些什么。它只是将模块添加到sys.path中吗?
如果我想在我的django项目中安装一个应用程序,但不将其添加到INSTALLED_APPS
列表中,我该怎么办。
不同之处在于使用其django功能时。
例如:
- 当您想要创建应用程序的模型时
- 当你想从管理页面浏览应用程序模型时
- 当你想从应用程序的url模式访问应用程序的视图时
- 当你想测试你的应用程序时
INSTALLED_APPS
做各种事情。基本上,如果一个应用程序想要提供一些将被Django核心功能使用的东西,就必须将其添加到INSTALLED_APPS
中。
示例包括:
- 模型:Django为所有安装的应用程序加载模型。
- 如果您想通过名称引用另一个应用程序中的模型,则必须安装第一个应用程序
- 这些模型也将出现在Django Admin界面中
- 这也确保了建立反向关系或尽早连接信号
- 模板:使用默认配置,Django在已安装应用程序的"模板"目录中搜索模板。请参见TEMPLATE_LOADERS
- 静态文件:"collectstatic"、"findstatic"和开发静态文件服务器将在已安装的应用程序中搜索静态文件。请参阅STATICFILES_FINDERS
- 翻译也是从已安装的应用程序中发现的。请参阅Django如何发现翻译
- Django管理命令也将在已安装的应用程序中发现
该列表可能会被扩展。
请注意,未添加到INSTALLED_APPS
的应用程序仍然有用,例如:
- 导入
urls
并使用视图会很好 - 自Django 1.6以来,测试发现不再局限于已安装的应用程序,请参阅任何测试模块中的测试发现