2012-02-29 31 views
6

Tôi mới phát triển ứng dụng web.Làm thế nào để không khởi động lại máy chủ mọi lúc khi làm việc với Flask hoặc Express?

Câu hỏi của tôi là ... Tôi đã thử một số phát triển thực hành trên Zend + Apache (php), Flask (python), Express dưới node.js.

Tôi thấy rằng khi tôi bắt đầu phát triển trên Zend framework + Apache, không cần phải khởi động lại apache mỗi khi có sự thay đổi mã trong PHP trong Controller, Model hoặc Views. Nó rất thuận tiện và nhanh chóng!

Tuy nhiên, nếu tôi làm việc trên Flask hoặc Express, tôi phải khởi động lại toàn bộ ứng dụng mỗi khi tôi thay đổi mã trên Bộ điều khiển hoặc Phần mô hình. Không cần phải khởi động lại máy chủ nếu có thay đổi mã trên Xem phần. Tuy nhiên, nó là đủ khó chịu !!!

Ngay bây giờ, tôi đang làm việc trên dự án trên Flask, làm thế nào tôi có thể tránh khởi động lại máy chủ mọi lúc ??? Vấn đề có thể được giải quyết nếu tôi đặt toàn bộ ứng dụng web lên trên Nginx không ??

Thanks a lot

Trả lời

0

Nếu bạn chạy với debugger trên, bạn có thể sử dụng restart command để khởi động lại kịch bản mà không cần khởi động lại toàn bộ máy chủ.

6

UPDATE:

Khi chế độ gỡ lỗi là trên cho Flask, máy chủ sẽ phát hiện những thay đổi ::

from application import app 
app.debug = True 

if __name__ == '__main__': 
    app.run() 

Tuy nhiên, trong bối cảnh sản xuất, nó không được khuyến khích để tự động làm mới máy chủ.


Run nó trên đầu trang của tornado:

$ pip install tornado 

Tạo một file mới server.py, mà quấn lên app.py:

from tornado import autoreload 
from tornado.wsgi import WSGIContainer 
from tornado.httpserver import HTTPServer 
from tornado.ioloop import IOLoop 

http_server = HTTPServer(WSGIContainer(app)) 
http_server.listen(5000) 
ioloop = IOLoop.instance() 
autoreload.start(ioloop) 
ioloop.start() 
+0

Tại sao nó hoạt động? Họ có theo dõi io khác nhau và tự động tải lại máy chủ không? –

+0

Đối với apache + php, không tải lại apache ngầm? –

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