Django:为什么我要在INSTALLED_APPS中添加包名?

时间:2018-03-25 12:06:12

标签: python django

在Djano中,我为什么要在INSTALLED_APPS内为django-filterDRFdebug-toolbar等某些软件包添加第三方软件包名称,而我不知道我想添加一些包,如CeleryRequests等?

我无法弄清楚为什么要将它们添加到特定列表中,即使它们都相似pip packages并且我以相同的方式安装它们。
提前致谢!

2 个答案:

答案 0 :(得分:1)

来自docs

  

包?应用?

     

Python包提供了一种为相关Python代码分组的方法   易于重用。包中包含一个或多个Python代码文件(也是   被称为“模块”)。

     

可以使用import foo.bar或foo导入栏导入包。   对于一个目录(如民意调查)来形成一个包,它必须包含一个   特殊文件 init .py,即使此文件为空。

     

Django应用程序只是一个专门的Python包   打算用于Django项目。应用程序可能使用common   Django约定,例如模型,测试,URL和视图   子模块。

从上面的语句中我们知道每个编写良好的python代码都可以是一个包,现在如果这个包是目录中的一堆python代码,安装它就意味着只需复制项目中的目录并{{1}他们在代码中需要的任何地方。

但现在有这个包已经是一个django应用程序,可能会使用一些特殊优势。就像暴露一个宁静的API或提供某种静态资源,甚至是使用特殊的django特定类一样。这些操作需要您import的直接许可,以便您的项目知道如何处理此包。甚至他们可能需要将他们的网址路径包含在您的项目中,以便访问您网站的人可以访问它们。

我认为所有这些手动工作都是一种安全行为。

答案 1 :(得分:0)

您需要添加带有模型(非抽象),模板,模板标签或管理命令的应用,以便django-admin找到并加载它们