像 Django 的许多项目,若你想改变某个设置,通常需要修改 settings.py 并重启服务器。这种方式对许多场景来说已经足够了,但有时你会希望从admin UI上修改某些配置,而不需要重新部署或重启整个应用。
我一天工作中使用 Magento,很喜欢其配置模块。可以在 admin 面板上更新某些设置,立即看到效果。想要在 Django 上实现类似的功能。
所以,我创建了一个小包叫做 django-sysconfig,并将其发布到了 PyPI(这是我的第一个 PyPI 包)。
这个包提供了一个基于验证的配置系统,允许动态管理设置。使用 Django 缓存框架缓存配置。该框架使用验证器来校验配置在保存时。以及手头几种受支持的类型来配置 (int、bool、text、secret、选择等)。
你可以把你的 React 应用 URL、维护模式标志、stripe 公钥和私钥(安全地不把这些信息透露到DB中)、3rdparty API 集成 (URLs & API Keys) 和程序运行时需要的其它任何设置添加进来。
当然,并不是所有的设置都应该可以动态改变,而这个包并不能替代 Django 的设置。这个包的作用是让某些级别的应用配置更容易管理,避免使用 .env 来管理设置。
我知道有同类包如django-constance 和 django-dynamic-preferences。 但我认为这个包更易于扩充,并且具有更好的 admin UX。
如果有任何对 Django 感兴趣的人想查看一下,可以在 github 上找到源码。期待 Django 开发者的反馈和建议。
链接:
PyPI: https://pypi.org/project/django-sysconfig/
Github: https://github.com/krishnamodepalli/django-sysconfig
感谢!
评论 (0)