2013-04-27 7 views
8

私はbottleで書かれたウェブサイトを持っています。私はAmazonのElastic Beanstalk経由で展開したいと思います。私はtutorial for deploying flaskに従っていて、これは似ていると思っていました。 私は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:

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) 
+0

うわー、あなたは完全に私の日を救った! – jbkkd

答えて

7

はWSGIサーバが探していること、それは可能です:aychedeeの助けを借りて は、私は最終的には、以下のアプリケーションファイルを使用して動作するようになりましたapplication内の変数application.py?それが私がFlaskのために働くことを理解する方法です。

application = bottle.default_app() 

ここでのアプリケーション変数はWSGI application as specified in PEP 333です。これは、環境とstart_response関数を使用する呼び出し可能です。したがって、FlaskとBottleのWSGIアプリケーションはまったく同じインターフェースを持っています。

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

+0

おそらく、ビーンストークは独自のwsgiサーバー、またはフラスコ(またはボトル)に組み込まれたサーバーを使用していますか?こんにちは世界プログラム[フラスコ用](http://flask.pocoo.org/docs/quickstart/)には、そのアプリケーションオブジェクトを作成する作業が含まれていますが、[ボトル用のもの](http://bottlepy.org/docs/dev/ tutorial.html)はありません。ボトルのようなアプリケーションオブジェクトを何らかの形で作ることができるかどうかは分かりません。 –

+0

うん、あなたは試してみることができます。私の答えに含まれている行は、ボトルフレームワークからWSGIアプリケーションを取得する方法です。 – aychedee

+0

さて、私はそれをしてもう少しだが、今では "Internal Server Error"を与えていて、test-env-ppamp7m3yc.elasticbeanstalk.comポート80で 'Apache/2.2.22(Amazon)Server 'と言う。ボトム。私は私がApacheを稼働していることを知らなかった、それはそれ自身のテストサーバーのものを実行するはずですか? –

関連する問題