2012-02-25 3 views
2

Я пытаюсь проверить это «привет мир» из питона (с торнадо) на убунту:Как остановить веб-приложение для торнадо?

import tornado.ioloop 
import tornado.web 
import tornado.httpserver 

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.write("Hello, world") 

application = tornado.web.Application([ 
    (r"/", MainHandler), 
]) 

if __name__ == "__main__": 
    httpserver.stop() 
    application.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

Моя командной строки для запуска этого веб-приложение:
питона hello.py

Однако я могу запустите этот «hello.py» только один раз. Теперь я меняю код и хочу снова запустить «hello.py». Я думаю, что мне нужно остановить предыдущий экземпляр «hello.py», потому что он берет порт 8888. Но просто не знаю, как это сделать.

Я стараюсь "импорт tornado.httpserver", чтобы использовать функцию "httpserver.stop()", но отчеты питона на терминале, что:

Traceback (most recent call last): 
    File "hello.py", line 14, in <module> 
    httpserver.stop() 
NameError: name 'httpserver' is not defined 

Я стараюсь "HTTPServer.stop()" также, но он дает такую ​​же ошибку !!!

+0

Вы должны использовать 'tornado.httpserver.stop()', поскольку вы импортировали модуль 'tornado.httpserver' – Phani

+0

tornado.httpserver - это пакет, не так ли? Я попытался использовать tornado.httpserver.HTTPServer.stop(), но это не удалось 2 – jondinham

+0

Возможный дубликат [Как остановить веб-сервер Tornado?] (http://stackoverflow.com/questions/5375220/how-do-i- stop-tornado-web-сервер) – user

ответ

3

Если ваш терминал не подключен, вы можете просто убить pid, если это Ctrl + c.

родственный ссылка:
http://groups.google.com/group/python-tornado/browse_thread/thread/87bc2451d79fa110/30665b2717397152?pli=1

+0

да, но это руководство. Я хочу, чтобы код автоматически останавливал торнадо, чтобы применить изменения в коде python при редактировании. – jondinham

+0

нет. вам необходимо перезапустить сервер. или отправить SIGHUP, может быть? –

+1

проверьте это http://groups.google.com/group/python-tornado/browse_thread/thread/87bc2451d79fa110/30665b2717397152 –

3

А. Importing in python отличается от Java \ C#. Чтобы импортировать указанные термины, которые вы должны написать что-то вроде

from tornado import ioloop,web,httpserver 

или использовать предметы, как ввозимые (т.е. с tornado. префиксом)

B. Когда вы calling ioloop.IOLoop.instance().start() эта функция будет работать, пока это не ловит исключение, процесс закрыт или один из зарегистрированных вызовов ручек ioloop.IOLoop.instance().stop(). Также он может перезагрузиться при изменении кода любого импортированного модуля.

Смежные вопросы