Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用twisted加载自定义配置文件?_Python_Twisted - Fatal编程技术网

Python 如何使用twisted加载自定义配置文件?

Python 如何使用twisted加载自定义配置文件?,python,twisted,Python,Twisted,我正在用twisted创建一个简单的服务器。我想在yaml文件中存储配置值。我找不到使用特定于应用程序的配置配置twisted服务或应用程序的示例 由于我服务的实际资源对象将为每个请求创建,因此显然这不是读取配置文件的正确位置 我是否会在工厂中读取配置文件,然后将站点子类化以将其传递给我的资源?我只是在任何地方都找不到记录的模式 这是我的密码: #!/usr/bin/env python from twisted.internet import reactor from twisted.web

我正在用twisted创建一个简单的服务器。我想在yaml文件中存储配置值。我找不到使用特定于应用程序的配置配置twisted服务或应用程序的示例

由于我服务的实际资源对象将为每个请求创建,因此显然这不是读取配置文件的正确位置

我是否会在工厂中读取配置文件,然后将站点子类化以将其传递给我的资源?我只是在任何地方都找不到记录的模式

这是我的密码:

#!/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()
#/usr/bin/env python
从twisted.internet导入
从twisted.web.server导入站点
从twisted.web.resource导入资源
进口yaml
def load_config():
返回yaml.load(文件('./test/config_file.yaml',r'))
#如何使此资源可以访问我的配置?
类scaleImage(资源):
isLeaf=True
def render_POST(自我,请求):
返回“”
图像缩放
"""
工厂=站点(scaleImage())
反应堆listenTCP(8000,工厂)
反应堆运行()

改变一下怎么样:

factory = Site(ScaledImage(load_config(...)))
然后让您的
scaleImage
初始值设定项接受配置

一般来说,您可能不应该传递整个配置。配置文件通常最终会变成一大堆混乱的随机文件。你不想通过你的API把这些乱七八糟的东西推到你的API上。相反,选择
scaleImage
感兴趣的配置片段,并将其传递给:

config = load_config(...)
scaleFactor = getScaleFactorFromConfig(config)
factory = Site(ScaledImage(scaleFactor))