嗨大家,
我花了几个星期搭建了这样一个东西,它解决了我个人的一个需求,我很好奇它是否会给别人带来认同感或帮助。
问题在于:我总是经常重启Django,只是为了将一个布尔值 flip 或者更改一个电子邮件地址。[`settings.py`] 为部署时配置提供了很好的支持,但是在应用程序正在运行时,却不太方便进行任何更改。
我以前看过Magento的系统配置模块,处理起来非常流畅——带有类型字段、并且分成-section的内容,都可管理无需修改代码。所以我对Django构建了一个相似的东西:**django-sysconfig**.
想法是非常简单的。你定义你的配置架构在应用程序的[`sysconfig.py`]:
`@register_config (”myapp“)
class MyAppConfig:
class General(Section):
site_name=Field(StringFrontendModel,default = "My App")
maintenance_mode=Field(BooleanFrontendModel,default = False)
max_items=Field(IntegerFrontendModel,validators=[RangeValidator(1 ,10000)]
然后,可以无须重启就读写:
`config.get(”myapp.general.maintenance_mode“) # False
config.set(”myapp.general.maintenance_mode,True
我比较骄傲的一些东西:为密钥字段(Fernet)实现了静态加密、具有20多个内置验证器的.on\_save回调、Django缓存集成以及自动发现功能,这意味着你只需将[`sysconfig.py`,这个程序就可以自动检测。
我查看了 django-constance 之前就做了这个—I看起来是可靠且很普遍,但它是一个扁平的key值仓库。有这样一个更结构化且带有合理命名空间和类型的仓库。
**仓库地址**:[https://github.com /krishnamodepalli/django-sysconfig]
它还没被发布到PyPI ——honestly,对于人们会实际`pip install`这一包,我还有一些害怕。我关于这个项目,是否有做过信任发布者 + GitHub Actions 发布工作流程的人可以给我一下手忙的指点。首次发布包。
有任何反馈,我确实非常感谢——API 感觉是否合理,是否有缺失的特性,是否有东西感觉不错。你感兴趣这个类似的项目且想参与合作的人,可以和我们交流或打开一个问题。
评论 (0)