8

ボトルで書かれたウェブサイトを持っており、Amazon の 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() メソッドを試してみましたが、ボトルの hello world アプリケーション (つまりrun(host='localhost', port=8080, debug=True)) でどのように記述されているのか、どちらも機能していないようでした。@route('/hello')と同様に両方も試しました@route('/')

代わりにフラスコを使って(つまり、Amazonのチュートリアルとまったく同じように)行ったところ、うまくいきました。伸縮性のある豆の木が入ったボトルは使えないということですか?または、それを機能させるためにできることはありますか?

どうもありがとう、アレックス

EDIT: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

applicationWSGI サーバーが内部で変数を探している可能性はありapplication.pyますか? それがFlaskで機能することを私が理解している方法です。

application = bottle.default_app()

ここでの application 変数は、PEP 333 で指定されている WSGI アプリケーションです。これは、環境と start_response 関数を受け取る callable です。そのため、Flask と Bottle WSGI アプリケーションのインターフェースはまったく同じです。

おそらく...しかし、なぜそれが必要なのか、そしてへの呼び出しが必要なのか、私は混乱していますrun

于 2013-04-28T00:31:10.043 に答える