Как исправить ошибку «выполнение операторов Constant запрещено»? - PullRequest
0 голосов
/ 23 октября 2019

Я следую учебному пособию в документации по web.py для шаблонов

    import web
    render = web.template.render('templates')
    print (render.hello('world'))

Однако при запуске файла python возникает ошибка: «выполнение операторов« Константа »запрещено». Поиск в Google не дает ответов, мне нужна помощь, пожалуйста. Спасибо

1 Ответ

0 голосов
/ 30 октября 2019

web.py запрещает выполнение некоторых типов юридических утверждений python в шаблоне. Я не знаю, почему он запрещает ваше конкретное утверждение, но есть способ разрешить шаблонам делать больше:

web / template.py содержит список ALLOWED_AST_NODES, которые являются конструкциями (используется абстрактным синтаксическим деревомпарсер), которые разрешены в шаблонах. Вы можете изменить это.

В своем коде добавьте один раз:

from web.template import ALLOWED_AST_NODES
ALLOWED_AST_NODES.append('Constant')

Теперь это не должно быть необходимым, поэтому я подозреваю, что в вашем коде происходит что-то еще ... Возможно, сочетание версий? Я полагаю, что «Константа» является узлом в python3 AST, но не в python2?

Это полезный метод для добавления словарного понимания .append('DictComp') к шаблону разрешенных узлов ast, поскольку он уже разрешает понимание списка.

...