Webpy: как автоматически перезагрузить исходный код, когда он изменился? - PullRequest
4 голосов
/ 22 июля 2011

Я учусь webpy писать код.Я использую Webpy Framework 0.34.моя операционная система Ubuntu 11.04 и версия Python 2.7.в учебниках webpy.org говорится:

"При запуске со встроенным веб-сервером приложение запускается в режиме отладки. В режиме отладки любые изменения в кодеи шаблоны автоматически перезагружаются"

, но это не работает.

мой код code.py совпадает с примером учебника:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import web
class index():
    def GET(self):
        return 'a'

if __name__ == '__main__':
    urls = ('/', 'index')
    app = web.application(urls, globals())
    app.run()

, и я использую встроенный веб-сервер (для запуска использовался

python code.py

сервер)

, когда я меняю код «return» a »на« return «b» », в веб-браузере он продолжает отображать« a », пока я не перезагружу сервер.

перезапуск сервера каждый раз, когда вы переписываете код, тратит впустую время, почему механизм автозагрузки не работает?Я делаю что-то неправильно?спасибо за любую помощь.


edit : извините, мой code.py не совсем совпадает с примером учебника, который вызывает проблему.если я помещу строку назначения urls вне оператора if, механизм перезагрузки сработает !!

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import web

class index():
    def GET(self):
        return 'a'

urls = ('/', 'index')

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

, но я не знаю почему ...

Ответы [ 4 ]

1 голос
/ 04 февраля 2016

если у вас есть отдельный route.py файл, такой как я, не создавайте такой файл следующим образом:

from controllers.index import Index
urls = ('/','Index')

он не будет перезагружаться при изменении документа, вместо этого сделайте следующее:

urls = ('/','controllers.index.Index')
1 голос
/ 07 сентября 2014

Попробуйте добавить следующее в начало вашего кода (после импорта):

web.config.debug = True

Для получения дополнительной информации: http://webpy.org/docs/0.3/tutorial#developing

1 голос
/ 22 июля 2011

У меня есть только одна идея: ваш редактор не меняет время модификации ваших файлов. Попробуйте принудительно изменить временную метку, выполнив следующую команду после изменения кода и после этого проверьте результаты:

$ touch code.py
0 голосов
/ 07 июня 2013

Вы должны обновить страницу после изменения и сохранить код

...