【问题标题】:Flask routing issues on CherryPyCherryPy 上的烧瓶路由问题
【发布时间】:2012-08-28 09:41:01
【问题描述】:

我尝试了http://flask.pocoo.org/snippets/24/ 上的方法让 Flask 在 CheryPy 服务器上工作,它工作正常,到目前为止没有问题。但是除了“/”之外,我无法路由其他任何东西。例如,如果我想路由到 localhost/xyz,它会返回“Hello World”。

我应该为每条路径创建一个 Flask 应用程序吗?

server.py 是:

from cherrypy import wsgiserver
from qwe import app

d=wsgiserver.WSGIPathInfoDispatcher({"/":app,"/xyz":app})
server=wsgiserver.CherryPyWSGIServer(('0.0.0.0',80),d)

if __name__ == '__main__':
    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()

qwe.py 是:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World"

@app.route("/xyz")
def ff():
    return "Test1"

【问题讨论】:

  • @J.F.Sebastian 请添加为答案
  • @J.F. Sebastian 已删除并现在在 localhost/xyz 上获得 404

标签: python routes flask cherrypy


【解决方案1】:

它应该这样工作:

app.py:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def root():
    return "Hello World!"

@app.route("/xyz")
def xyz():
    return "Hello XYZ!"

if __name__ == "__main__":
    app.run()

server.py:

from cherrypy import wsgiserver
from app import app

d = wsgiserver.WSGIPathInfoDispatcher({'/': app})
server = wsgiserver.CherryPyWSGIServer(('0.0.0.0', 9999), d)

if __name__ == '__main__':
    try:
        server.start()
    except KeyboardInterrupt:
        server.stop()

转到 http://localhost:9999 并获取 Hello World! ,然后转到 http://localhost:9999/xyz 并获取 Hello XYZ!

【讨论】:

  • 它成功了,谢谢,但为什么我不能让它对端口 80 有用?
  • 也许另一个应用程序在该端口上充当服务器? Skype?
猜你喜欢
  • 1970-01-01
  • 2019-12-15
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2020-07-04
  • 2017-11-22
  • 2018-07-20
相关资源
最近更新 更多