我正在创建一个扭曲的简单服务器。我想将配置值存储在yaml文件中。我找不到使用特定于应用程序的配置来配置扭曲服务或应用程序的示例。
由于将为每个请求创建我正在服务的实际Resource对象,因此显然这不是读取配置文件的正确位置。
我可能会在工厂中读取配置文件,然后子类化Site以将其传递给我的资源?我只是似乎找不到任何地方记录的模式。
这是我的代码:
#!/usr/bin/env python
from twisted.internet import reactor
from twisted.web.server import Site
from twisted.web.resource import Resource
import yaml
def load_config():
return yaml.load(file('./test/config_file.yaml', 'r'))
# how can I make this resource have access to my config?
class ScaledImage(Resource):
isLeaf = True
def render_POST(self, request):
return """
<h1>image scaled</h1>
"""
factory = Site(ScaledImage())
reactor.listenTCP(8000, factory)
reactor.run()
仅更改此内容如何:
factory = Site(ScaledImage(load_config(...)))
然后使您的ScaledImage
初始化程序接受配置。
一般而言,您可能不应该传递整个配置。配置文件通常最终会变成混乱的随机小球。您不想通过您的API来解决这个大问题。相反,请选择ScaledImage
感兴趣的配置并将其传递给:
config = load_config(...)
scaleFactor = getScaleFactorFromConfig(config)
factory = Site(ScaledImage(scaleFactor))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句