Django设置应用程序?

Django设置应用程序?

问题描述:

有没有人遇到过django项目的“设置应用程序”的想法?Django设置应用程序?

这是由管理员(不是开发人员,因此settings.py失败)使用管理面板设置的一组应用程序变量。

是否有任何应用程序可以使用?

编辑 我可能没有说清楚我的问题。我不是指编辑像连接设置这样的东西,而是像“文件大小限制”这样的东西。

+1

什么设置?项目设置或应用程序设置? – 2010-09-12 22:55:40

有一个非常不错的应用程序,这样做,所谓的Django dbsettings。官方回购多年未更新,但我有一个最新的分叉my github page

+0

谢谢,我想知道是否有人使用这种方法。我最终创建了自己的dbsettings应用程序(我只需要几个设置),并为每组设置(如FileSizeLimitsModel)设置了一个模型。我也做了一些自定义标签,所以它们在我需要的每个视图中都可见。 – mhaligowski 2010-09-16 08:00:32

问题是你将如何存储设置。

原因...如果将设置存储在数据库中,将会很麻烦,因为在您建立数据库连接之前,大多数代码已经被初始化(使用之前的设置)。

如果是文件系统,那意味着你将不得不包含一个正在被你的web服务器修改的Python文件,这对我来说听起来像是一个巨大的安全风险。

所以......在我看来,这是可以做到的,但我会投反对票,因为它很危险。如果事情应该可以从网络配置,在应用程序中实现:)

这听起来有点像你问“管理员如何更改设置(如数据库连接参数)而不更改settings.py

如果你的管理是不是蟒蛇不够熟悉而直接改变settings.py文件,你可能会考虑给管理员一个简单的文件进行编辑,或许config file你从settings.py加载。然后,您的所有管理员必须执行的操作是编辑配置文件并重新启动服务器。

这有一个额外的好处,你可以限制配置文件只有那些你的管理员需要弄乱的参数(如数据库连接参数)。

(另一种选择是,以获得更好的管理......)

+0

+1:我们以与配置文件方法不同的方式(可能不是很好)处理了这个问题。我们为'local_early_settings.py'和'local_late_settings.py'设置了'try/except',它们在主settings.py文件的顶部和底部附近被选中。这些原本旨在允许不同开发人员的独立工作空间中进行不同的设置,但当我们的一位知识欠缺的人将早期/晚期文件中的一个拧紧时,它也很有用。哦,这两个文件也被列在.hgignore文件中,所以它们不会意外地在生产中结束。 – 2010-09-13 03:57:52

+0

我不会让网站管理员(我不是指dba或sysadmin)来更改数据库连接设置。 – mhaligowski 2010-09-16 07:58:06

+0

-1有时候,您有需要由非技术精明的个人控制的全网变量。即使给他们一个更简单的文件,也需要让他们对服务器进行CLI访问,这可能会导致安全或技术问题。有时候一个不错的键值界面很好。 – 2014-02-20 00:12:20