- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个正在构建的 Django 应用程序,我们将其称为 foo
。
由于 Foo 的构建方式,它需要许多第三方 django 应用程序才能运行。例如,要运行 Foo
,安装应用程序可能如下所示:
INSTALLED_APPS = ('prereq1',prereq2','foo')
事实上,要使 Foo
发挥作用,必须在 django 中安装 'prereq1', prereq2'
。现在,我可以将要求添加到 requirements.txt
或 setup.py
以确保在有人安装 Foo
时安装库,但是我不知道是否有办法将它们安装在 Django 本身中。
这样做的原因是如果有人想使用 Foo,我不想包括像这样的指令:
In your
INSTALLED_APPS
addfoo
but also addscary_looking_library_name
andthing_you_dont_understand
.
那么 INSTALLED_APPS
中的应用是否有可能以某种方式要求或向该列表中注入(inject)更多应用?
最佳答案
我同意 Daniel Roseman 关于 system checks framework 的回答是进行这些检查的最佳场所。 Django 1.7引入了系统检查框架。
但是,假设您有文档,您还可以记录这些先决条件,例如 Django REST Framework did in their installation instructions .
然后您可以在代码中执行类似以下操作(以 django-mptt 为例):
try:
from mptt.fields import TreeForeignKey
from mptt.models import MPTTModel
except ImportError:
raise ImportError(
'You are using the `foo` app which requires the `django-mptt` module.'
'Be sure to add `mptt` to your INSTALLED_APPS for `foo` to work properly.'
)
这是我在多个应用程序中看到的方法。阅读文档的责任在于开发人员。
也许这是一个不受欢迎/不必要的意见,但将依赖项注入(inject) INSTALLED_APPS
并不是我认为您应该在应用程序中处理的事情。
我通常会尝试遵循 Zen of Python在设计应用程序时:
INSTALLED_APPS
中手动输入依赖项INSTALLED_APPS
的方法很难解释。如果第三方依赖比较复杂,让开发者决定。INSTALLED_APPS
。INSTALLED_APPS
- 这就是为什么没有明显的方法来执行您想要的操作(注入(inject))。如果开发者想要激活应用,他们会的。正如您在示例中 Eloquent 地陈述的那样,scary_looking_library_name
和 thing_you_dont_understand
是开发人员理解的责任。选择为开发人员安装它会带来不必要的安全风险。让开发人员选择使用您的应用程序并初始化其依赖项。
关于python - 如何在 INSTALLED_APPS 中包含必备应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270334/
我正在尝试创建我的 Django 项目/网站的“投票”部分,教程 (https://docs.djangoproject.com/en/1.8/intro/tutorial01/) 说在我们“激活”模
我正在开发一个应用程序,它需要安装另一个应用程序。我可以将它添加到我的 setup.py 中,它也会安装其他应用程序。 安装我的应用程序后,我需要将它添加到 INSTALLED_APPS,但我也需要添
INSTALLED_APPS 中应用的顺序重要吗?我问它是因为我有 settings 文件夹,其中包含两个 settings 文件:base.py 和 production.py 我将我所有的设置放在
我有一个包含许多应用程序的项目。这些应用程序转换为为最终用户执行不同功能的模块。 现在项目的每个部署都可能启用或禁用某些应用程序。 我想要实现的是一个链接导航列表,它只显示 INSTALLED_APP
在我的 Django 项目下有一些应用程序,它们都有单元测试。我现在正在工作的其中一个应该只包含在开发/阶段环境中,所以我使用环境变量启用它。 当这个变量存在时,它被添加到 INSTALLED_APP
这个问题已经有答案了: Django 1.9 can not find newapp (2 个回答) 已关闭 6 年前。 我有一个规范形式的 django 项目: .├── app1/├── app2
Django 文档 says : the final dotted part of the path to the module defined in INSTALLED_APPS must be u
我有一个正在构建的 Django 应用程序,我们将其称为 foo。 由于 Foo 的构建方式,它需要许多第三方 django 应用程序才能运行。例如,要运行 Foo,安装应用程序可能如下所示: INS
在 Django 中导入模型模块时出现以下错误。 /Users/markcollier/Documents/Adapt/Taboo/TabooAPI/env/lib/python2.7/site-pa
当我使用库“ckeditor”运行服务器时,我在 manage.py 文件中遇到了这个错误(我在使用 tinymce 时也遇到了同样的错误): Traceback (most recent call
我正在尝试将现有的 django 1.4 项目移植到 django 1.7 这是我将项目移植到 django 1.7 之前的树结构 Project - MainApp - manage.py
我目前只是将应用程序添加到 INSTALLED_APPS 以便能够使用来自该应用程序的模板,但也有 TEMPLATE_DIRS 设置。我什么时候更喜欢 TEMPLATE_DIRS 而不是 INSTAL
这实际上是做什么的?我最近将我的项目从 1 个应用程序扩展到 6 个不同的应用程序,并且忘记更新我的设置文件的 INSTALLED_APPS 部分。即使我没有列出新应用程序,一切仍然有效。这应该发生吗
网站上的教程创建了一个名为 polls 的应用程序。它使用的是 django 1.9,所以在 INSTALLED_APPS 中是: polls.apps.PollsConfig 我正在看一个教程,他命
它只是一个示例应用程序, 应用名称:wiki #models.py from django.db import models class Page(models.Model): name = mode
我有一个应用程序(django-compressor),我只想在我的本地机器上而不是服务器上运行。我知道 try: from local_settings import * except Im
我已经编写了一个 Django 应用程序,现在我希望能够轻松地在多个服务器上部署。 基本安装是: 将应用程序文件夹复制到 Django 项目文件夹中 将其添加到 settings.py 中的 INST
我想在我的 Django 项目中使用 django-moderation。我已经使用 pip3 下载了该应用程序,问题是当我将应用程序添加到 INSTALLED_APPS 时,出现以下异常。您能告诉我
Django 教程使用 installed_apps 中的列表说明如下。但默认是一个元组,其他消息来源也说 Django 在这种情况下更喜欢元组而不是列表。 我的问题是:如果我按照教程中的说明使用列表
情况是这样的。我有一个带有两个已安装应用程序的 Django 项目。如果这两个应用程序彼此独立安装,它们似乎可以正常运行。 但是,如果我在 settings.INSTALLED_APPS 中列出这两个
我是一名优秀的程序员,十分优秀!