Как не перезагружать сервер каждый раз при работе с Flask или Express? - PullRequest
6 голосов
/ 29 февраля 2012

Я новичок в разработке веб-приложений.

Мой вопрос: я попробовал некоторые практические разработки на Zend + Apache (php), Flask (python), Express под node.js.

Я обнаружил, что когда я начинаю заниматься разработкой на Zend Framework + Apache, нет необходимости перезапускать Apache каждый раз, когда происходит изменение кода в PHP под Controller, Model или Views.Это очень удобно и быстро!

Однако, если я работаю на Flask или Express, мне придется перезапускать все приложение каждый раз, когда я меняю код на контроллере или модели.Нет необходимости перезагружать сервер, если при просмотре деталей происходит изменение кода.Тем не менее, это достаточно раздражает !!!

Сейчас я работаю над проектом на Flask, как я могу избежать перезапуска сервера каждый раз ???Может ли проблема быть решена, если я поместил все веб-приложение поверх Nginx ??

Большое спасибо

Ответы [ 3 ]

6 голосов
/ 03 марта 2012

UPDATE:

Если для Flask включен режим отладки, сервер обнаружит изменения ::

from application import app
app.debug = True

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

Однако в производственных условиях автоматическое обновление сервера не рекомендуется.


Запустите его поверх tornado:

$ pip install tornado

Создайте новый файл server.py, который обернет 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()
2 голосов
/ 29 февраля 2012

При работе с mod_wsgi вам просто нужно изменить или коснуться сценария WSGI, на который указывает WSGIScriptAlias.

touch /home/user/env/app.wsgi

См. http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

0 голосов
/ 29 февраля 2012

Если вы запускаете с включенным отладчиком , вы можете использовать команду restart для перезапуска сценария без перезапуска всего сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...