8

我有一个用瓶子写的网站,我想通过亚马逊的 Elastic Beanstalk 部署它。我遵循了部署烧瓶的教程,我希望它是相似的。我试图通过制作 requirements.txt 来调整说明以适应瓶子:

bottle==0.11.6

并将 application.py 文件的基本烧瓶版本替换为:

from bottle import route, run
@route('/')
def hello():
    return "Hello World!"
run(host='0.0.0.0', debug=True)

我按照教程中的说明更新到这个版本,当我写eb status它时说它是绿色的,但是当我转到 URL 时没有加载。它只是挂在那里。我在最后尝试了 run() 方法,如上所示,以及它是如何在bottle hello world 应用程序(即run(host='localhost', port=8080, debug=True))中编写的,但似乎都不起作用。我也尝试了两者@route('/hello')以及@route('/').

我用烧瓶代替(即就像亚马逊教程所说的那样),它工作得很好。这是否意味着我不能使用带有弹性豆茎的瓶子?或者我可以做些什么来让它发挥作用?

非常感谢,亚历克斯

编辑:在 aychedee 的帮助下,我最终使用以下应用程序文件让它工作:

from bottle import route, run, default_app
application = default_app()
@route('/')
def hello():
    return "Hello bottle World!"

if __name__ == '__main__':
    application.run(host='0.0.0.0', debug=True)
4

1 回答 1

7

WSGI 服务器是否有可能在里面寻找application变量application.py?这就是我理解它适用于 Flask 的方式。

application = bottle.default_app()

此处的应用程序变量是PEP 333 中指定的 WSGI 应用程序。它是一个接受环境和 start_response 函数的可调用对象。所以 Flask 和 Bottle WSGI 应用程序具有完全相同的界面。

可能......但是我很困惑为什么你需要那个调用run.

于 2013-04-28T00:31:10.043 回答