Шаблоны кеширования Bottle.py несмотря на то, что находятся в режиме отладки - PullRequest
5 голосов
/ 31 января 2012

Я только что построил свое первое приложение Bottle.py на GAE. Это работает за исключением того, что когда я меняю шаблоны, мне нужно перезапустить сервер dev, чтобы увидеть изменения. В документах говорится, что кэширование шаблона должно быть отключено при использовании bottle.debug (True), и что вы также можете вызывать bottle.TEMPLTE.clear (), но ни одна из них не работает. Я также попытался установить запуск (reloader = True), но это вызывает ошибку. Что я делаю неправильно? Работает ли bottle.debug () с кем-либо еще в GAE?

import bottle
bottle.debug(True)
bottle.TEMPLATES.clear()

@bottle.route('/')
def index(name='World'):
    return bottle.template('main')

bottle.run(server='gae')

Обновление: Вместо использования bottle.run (server = 'gae') я сам включил стандартную функцию main (), и теперь она работает.

def main():
  app = bottle.default_app()
  util.run_wsgi_app(app)

if __name__ == "__main__":
  main()

Ответы [ 2 ]

0 голосов
/ 18 июля 2013

Из документации:

Шаблоны кэшируются в памяти после компиляции. Изменения, внесенные в файлы шаблона, не будут влиять, пока вы не очистите кэш шаблона. Для этого вызовите bottle.TEMPLATES.clear (). Кеширование отключено в режиме отладки.

Метод запуска:

bottle.run( debug = True )

включит режим отладки.

Шаблон по умолчанию - SimpleTemplate в стабильной версии 0.11.6 .

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

Класс, URL, декоратор, Рендер, функция

SimpleTemplate , SimpleTemplate, Engine, view (), template ()

MakoTemplate , http://www.makotemplates.org, mako_view (), mako_template ()

CheetahTemplate , http://www.cheetahtemplate.org/, cheetah_view (), cheetah_template ()

Шаблон Jinja2 , http://jinja.pocoo.org/, jinja2_view (), jinja2_template ()

>>> Попробуйте использовать другой движок шаблонов, отличный от используемого по умолчанию. <<< </strong>

Чтобы использовать MakoTemplate в качестве движка шаблонов по умолчанию, просто импортируйте его специализированный декоратор и функция визуализации:

from bottle import mako_view as view, mako_template as template

>>> Убедитесь, что у вас нет дублированных файлов в путях просмотра <<< </strong>

TEMPLATE_PATH = ['./', './views/']

>>> Распечатать словарь шаблонов <<< </strong>

print bottle.TEMPLATES
0 голосов
/ 22 апреля 2012

Стандартный метод, представленный в Bottle / GAE doc:

app = bottle.app()

, затем вызывается dev_appserver.py, он читает app.yaml и импортирует ваше приложение из определенного вами сценария,и обрабатывать все остальное для среды GAE.

Вы не должны запускать свой .py напрямую.Запуск из бутылочного режима пропустит эти дескрипторы из dev_appserver, включая механизм кэширования шаблона.Конечно, использование util от Google работает и работает, но согласно документам uwsgi или другим проектам, связанным с wsgi, переменная app в модуле сценария - это объект, который должен быть предложен для верхней обработки.

...