使用Falcon WSGI到HTML页面显示来自Python方法中的中间消息

时间:2018-08-06 04:39:07

标签: python wsgi falconframework

因此,我想使用Python,Falcon和Gunicorn创建WSGI服务,以使用yield运算符显示该方法的中间进度。

import falcon
from falcon_cors import CORS

cors = CORS(allow_all_origins=True)

class Test:
    def __init__(self):
        self.name = 'Main'

    def on_get(self, req, resp):
        result = self.main()
        resp.stream=result

    def main(self):
        for i in self.sum():
            yield i

    def sum(self):
        for i in self.getx():
            if str(i).startswith("X"):
                yield i
            else:
                x=int(i)

        for i in self.gety():
            if str(i).startswith("Y"):
                yield i
            else:
                y=int(i)

        result=x+y
        yield "SUM: " + str(result) + "\n"

    def getx(self):
        x=2
        yield "X: " + str(x)+"\n"
        yield x

    def gety(self):
        y=4
        yield "Y: " + str(y)+"\n"
        yield y


api = falcon.API(middleware=[cors.middleware])
api.add_route('/', Test())

GET的HTML响应如下:

X: 2
Y: 4
SUM: 6

但是我的实际代码比此示例大得多。一系列仅通过return值调用绝对有效的其他方法的方法。将所有这些方法更改为yield其输出并引入for loop来查找要作为流的值和实际return值以进行处理似乎是非常不明智的。只是为了让我可以在HTML页面上显示一些字符串。

应该有某种方法将字符串消息发送到另一个在HTML页面上显示输出的进程或线程,而其余代码仅在return值下正常工作。当我们使用print在控制台屏幕上显示消息时,return仅使用调用方法进行处理所需的值。

0 个答案:

没有答案