小编Xua*_*uan的帖子

Flask可以提供CherryPy风格的路由吗?

默认的CherryPy路由样式基于带有方法的类的实例@cherrypy.expose.

在下面的示例中,这些URL是通过对其他普通类进行简单调整来提供的.

/
/hello
/hello/again
/bye
/bye/again
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法使用Flask的@route或其他一些装饰器来实现这一点.

import cherrypy

class Root(object):
    @cherrypy.expose
    def index(self):
        return 'my app'

class Greeting(object):
    def __init__(self, name, greeting):
        self.name = name
        self.greeting = greeting

    @cherrypy.expose
    def index(self):
        return '%s %s!' %(self.greeting, self.name)

    @cherrypy.expose
    def again(self):
        return '%s again, %s!' %(self.greeting, self.name)

if __name__ == '__main__':
    root = Root()
    root.hello = Greeting('Foo', 'Hello')
    root.bye = Greeting('Bar', 'Bye')
    cherrypy.quickstart(root)
Run Code Online (Sandbox Code Playgroud)

python cherrypy flask

6
推荐指数
1
解决办法
698
查看次数

Tornado并发错误与进程池执行程序一起运行多个进程

我正在尝试运行多个进程,同时使用它concurrent.futures.ProcessPoolExecutor来运行CPU密集型作业.前几个请求很愉快,但随后KeyError提出了一个请求concurrent.futures.process,服务器挂起.

这是龙卷风中的一个错误吗?

这是我删除代码的最简单形式.

服务器:

# -*- coding: utf-8 -*-
"""
server runs 2 processes and does job on a ProcessPoolExecutor
"""
import tornado.web
import tornado.ioloop
import tornado.gen
import tornado.options
import tornado.httpserver

from concurrent.futures import ProcessPoolExecutor


class MainHandler(tornado.web.RequestHandler):

    executor = ProcessPoolExecutor(1)

    @tornado.gen.coroutine
    def post(self):
        num = int(self.request.body)
        result = yield self.executor.submit(pow, num, 2)
        self.finish(str(result))


application = tornado.web.Application([
    (r"/", MainHandler),
])


def main():
    tornado.options.parse_command_line()
    server = tornado.httpserver.HTTPServer(application)
    server.bind(8888)
    server.start(2)
    tornado.ioloop.IOLoop.instance().start()


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

客户: …

python concurrency tornado multiprocessing concurrent.futures

2
推荐指数
1
解决办法
2212
查看次数