2013-04-27 27 views
8

Tôi đã có một trang web được viết bằng bottle và tôi muốn triển khai nó thông qua cây đậu đàn hồi của Amazon. Tôi theo sau số tutorial for deploying flask mà tôi hy vọng sẽ giống nhau. Tôi cố gắng để thích nghi với các hướng dẫn để chai bằng cách làm cho requirements.txt này:Không thể lấy chai để chạy trên cây đậu đàn hồi

bottle==0.11.6 

và thay thế phiên bản bình cơ bản của tập tin application.py với điều này:

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

tôi cập nhật này Phiên bản theo hướng dẫn trong hướng dẫn, và khi tôi viết eb status nó nói nó là màu xanh lá cây, nhưng khi tôi đi đến URL không có gì tải. Nó chỉ treo ở đó. Tôi đã thử phương thức run() ở cuối như nó được hiển thị ở trên và cũng như cách nó được viết trong ứng dụng thế giới hello chai (tức là run(host='localhost', port=8080, debug=True)) và dường như không hoạt động. Tôi cũng đã thử cả hai @route('/hello') cũng như @route('/').

Tôi đã làm và thay bằng bình (thay vào đó chính xác như hướng dẫn của Amazon) và nó hoạt động tốt. Điều đó có nghĩa là tôi không thể sử dụng chai với cây đậu đàn hồi? Hay có điều gì tôi có thể làm để nó hoạt động?

Thanks a lot, Alex

EDIT: Với sự giúp đỡ aychedee, tôi cuối cùng đã nhận nó để làm việc bằng cách sử dụng tập tin ứng dụng sau:

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

Wow, bạn đã hoàn toàn lưu lại ngày của mình! – jbkkd

Trả lời

7

Có thể rằng server WSGI đang tìm kiếm application biến bên trong application.py? Đó là cách tôi hiểu nó hoạt động cho Flask.

application = bottle.default_app() 

Biến ứng dụng ở đây là WSGI application as specified in PEP 333. Đó là một cuộc gọi có tính năng môi trường và hàm start_response. Ứng dụng Flask và Chai WSGI có giao diện giống hệt nhau.

Có thể ... Nhưng sau đó tôi nhầm lẫn về lý do tại sao bạn cần số cuộc gọi đến run.

+0

Hmm có thể, beanstalk có sử dụng máy chủ wsgi riêng của nó hoặc máy được xây dựng vào bình (hoặc chai) không? Chương trình hello world [for flask] (http://flask.pocoo.org/docs/quickstart/) liên quan đến việc tạo đối tượng ứng dụng đó, trong khi [đối tượng cho chai] (http://bottlepy.org/docs/dev/) tutorial.html) thì không. Không chắc chắn nếu tôi có thể làm cho một đối tượng ứng dụng như thế cho chai cũng bằng cách nào đó và có thể làm việc? –

+0

Yup, bạn có thể thử. Dòng tôi đưa vào câu trả lời của tôi là cách bạn lấy ứng dụng WSGI từ khung chai. – aychedee

+0

Ok, tôi đã làm điều đó và có thêm một chút nhưng bây giờ nó cho tôi một "Lỗi máy chủ nội bộ", và nó nói 'Apache/2.2.22 (Amazon) Server tại test-env-ppamp7m3yc.elasticbeanstalk.com Cổng 80' tại đáy. Tôi không biết tôi thậm chí còn chạy Apache, không phải là nó đang chạy máy chủ thử nghiệm của riêng mình sao? –

Các vấn đề liên quan