Есть ли хороший способ применить pychecker/pylint к коду Python в шаблонах Tornado?
Я использую Tornado 2.0 (Python 2.6.5) для создания простого веб-приложения.
Естественно, мои шаблоны Tornado содержат фрагменты кода Python. Для моего нешаблонного кода я использую pychecker и pylint для проверки ошибок и т. Д.
Тем не менее, очевидно, что pychecker и pylint не могут быть запущены поверх шаблонов напрямую, поскольку шаблоны не являются собственно файлами python (для пользователей, не использующих Tornado: это фрагменты в стиле html с некоторыми управляющими последовательностями и встроенным кодом Python).
Итак, мой вопрос: кто-нибудь может предложить хороший способ применения pychecker / pylint к коду python в этих файлах шаблонов? Предположительно это будет связано с извлечением кода из файлов.
Я могу подвергнуть сомнению несколько предположений относительно того, как это сделать, но мне любопытно, воспринимают ли другие люди это как проблему и какие решения они преследовали. Я все еще довольно новичок в разработке / разработке веб-приложений, поэтому мне интересны ответы, основанные на практическом опыте.
1 ответ
Вам нужно использовать шаблон класса представления, чтобы избежать загромождения вашего шаблона кодом Python, который невозможно проанализировать.
Создайте класс Python для обработки вашего представления вместо функции
Иметь весь код "шаблонной логики" как методы класса. Ваш шаблон вызывает их как {{ view.get_full_name }} и def get_full_name(self): вернуть self.item.first_name + " " + self.item.last_name
Сделайте экземпляр из своего класса
сделать вызов() в качестве отправной точки для вашей обработки
Передайте "self" вашему шаблону как контекстную переменную
Некоторые инструкции для Django, но, как правило, все платформы Python (Pyramid, Zope) следуют одному и тому же шаблону:
Классовые представления в Джанго
"$yourframeworkname view class" должен привести к большему количеству обучающих программ в Google.