为什么许多应用/框架将配置文件保持在未执行的格式中?

2 投票
5 回答
576 浏览
提问于 2025-04-15 15:29

很多框架的配置文件使用的语言和程序其他部分不同。例如,Appengine的配置文件是用yaml格式的,而DJango的settings.py则是一个Python模块。我觉得这样有很多缺点。

如果配置文件和程序用的是同一种语言,我可以:

 MEDIA_DIR = os.path.join(os.path.dir(__file__), 'media')
 #Or whaever the correct cals are, you get the idea.
  • 不需要学习一种新的(虽然比较简单的)格式
  • 我的工具可以正常使用这些配置文件
  • 我可以直接用 import conf 等等

如果是像C/C++这样复杂的语言,我能理解这样做的好处,但对于Python来说,这样做有什么意义呢?感觉就像是削弱了能力,却没有带来任何好处。

5 个回答

5

Python并不是App Engine上唯一可以使用的编程语言。所以同一个yaml配置文件也可以用来管理用其他语言,比如Java或Perl写的App Engine应用。

5

有时候,你需要用一个自动化的图形界面工具来解析、生成或者修改一个配置文件。如果你的配置文件是一个Python脚本,这就变得不太容易了。

12

有些框架的设计者认为,配置文件不应该放复杂的逻辑。就像MVC框架不允许你把逻辑放在不该放的地方一样,配置文件也不应该放程序代码在不合适的地方。

这其实是个人喜好和理念的问题。

不过,我个人更喜欢Django的做法。

撰写回答