在Djano中,我为什么要在INSTALLED_APPS
内为django-filter,DRF,debug-toolbar等某些软件包添加第三方软件包名称,而我不知道我想添加一些包,如Celery,Requests等?
我无法弄清楚为什么要将它们添加到特定列表中,即使它们都相似pip packages
并且我以相同的方式安装它们。
提前致谢!
答案 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找到并加载它们