Có lẽ bạn đã có một đối tượng ứng dụng Flask và các tuyến đường thiết lập, nhưng nếu bạn tạo ra các ứng dụng như thế này:
import flask
app = flask.Flask(__name__)
sau đó thiết lập @app.route()
của bạn, và sau đó khi bạn muốn bắt đầu ứng dụng:
import gevent
app_server = gevent.wsgi.WSGIServer((host, port), app)
app_server.serve_forever()
Sau đó, bạn chỉ có thể chạy ứng dụng của mình trực tiếp thay vì phải nói với gunicorn hoặc uWSGI hoặc bất kỳ thứ gì khác để chạy nó cho bạn.
Tôi có trường hợp tôi muốn tiện ích của bình để xây dựng một ứng dụng web (dịch vụ REST API) và thấy không có khả năng tạo bình với các phần tử không phải là bình, dịch vụ web khác. Cuối cùng tôi tìm thấy gevent.wsgi.WSGIServer
và đó chỉ là những gì tôi cần. Sau khi gọi tới app_server.serve_forever()
, bạn có thể gọi app_server.stop()
khi ứng dụng của bạn muốn thoát.
Trong quá trình triển khai, ứng dụng của tôi đang nghe trên máy chủ cục bộ: sử dụng bình và gevent, sau đó tôi có yêu cầu HTTPS đảo ngược proxy trên một cổng khác và chuyển chúng vào dịch vụ bình của tôi trên máy chủ cục bộ.
Nguồn
2016-08-16 20:58:27
Tornado là một máy chủ Python rất nhẹ, tôi chạy nó trong môi trường dev của tôi. Nhưng bạn có thể muốn xem xét nó. Nếu dịch vụ được ẩn anyway, tôi không thấy một vấn đề chạy máy chủ inbuild dev, nhưng tôi có kinh nghiệm tụt hậu trong khi phát triển. Nó có thể không ổn định và có trách nhiệm ... – Hannes
Không sử dụng Tornado để chạy các ứng dụng WSGI. Tài liệu riêng của họ cảnh báo chống lại điều đó. – davidism
Ồ, rất vui được biết. Tôi đoán. Không bao giờ có rắc rối trong dev với nó mặc dù. Gotta nhìn vào tài liệu ... :) – Hannes