最近我发现了Dynaconf,它是一个很好的配置管理包,与Flask和Django很好地集成。Django应用程序使用Dynaconf运行得非常出色。但是,我的应用程序运行后台任务所依赖的芹菜应用程序不是
以下是芹菜应用程序的配置代码,该应用程序在使用Dynaconf之前工作:
from celery import Celery
app = Celery('KillerApp')
app.config_from_object('django.conf:settings', namespace='CELERY')
似乎我需要将“django.conf:settings”更改为其他内容。有什么想法吗
如果您使用的是Django plugin for Dynaconf,那么就可以直接使用
django.conf:settings
,因为Dynaconf会修补django设置对象如果您仍然有问题,我建议在dynaconf repo上打开一个问题,并尝试直接使用应用程序的设置
例如,如果您有一个名为
foo
的应用程序,您的DJANGO_SETTINGS_MODULE
可能是foo.settings
,那么您可以将其用于芹菜:您可以传入表示要导入的模块的字符串,也可以直接传入配置对象;见^{} method documentation
您将有一个模块来设置
Dynaconf()
实例,例如,如果您有一个名为acme_project
的包,其中有一个config.py
文件,其中包含然后可以导入
acme_project.config
并在那里找到settings
对象。您可以导入该对象,也可以使用'acme_project.config:settings'
作为传递给app.config_from_object()
的值,让芹菜来导入该对象。namespace
参数告诉芹菜希望所有设置都以CELERY_
作为前缀,这与Django的工作方式完全相同。如果您计划使用Dynaconf托管设置来配置多个组件,而不仅仅是芹菜,请使用此选项例如,如果您使用:
然后
settings.toml
或settings.yaml
或您选择的任何文件格式都需要使用CELERY_
作为所有设置的前缀相关问题 更多 >
编程相关推荐