Есть хороший способ применить pychecker / pylint к коду Python в шаблонах Tornado? - PullRequest
1 голос
/ 06 августа 2011

Я использую Tornado 2.0 (Python 2.6.5) для создания простого веб-приложения.

Естественно, мои шаблоны Tornado содержат фрагменты кода Python.Для моего не шаблонного кода я использую pychecker и pylint для проверки ошибок и т. Д.

Однако очевидно, что pychecker и pylint не могут быть запущены над шаблонами напрямую, т.к. шаблоны не являются pythonправильные файлы (для пользователей, отличных от Tornado: это фрагменты в стиле html с некоторыми управляющими последовательностями и встроенным кодом Python).

Итак, мой вопрос: может кто-нибудь предложить хороший способ применения pychecker/ pylint к коду Python в этих файлах шаблонов? Предположительно, это будет связано с извлечением кода из файлов.

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

1 Ответ

0 голосов
/ 11 августа 2011

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

  • Создайте класс Python для обработки вашего представления вместо функции

  • Иметь весь код "шаблонной логики" в качестве методов класса. Ваш шаблон вызывает их как {{view.get_full_name}} и def get_full_name (self): вернуть self.item.first_name + "" + self.item.last_name

  • Сделайте экземпляр из вашего класса

  • сделать вызов () в качестве отправной точки для вашей обработки

  • Передайте "self" вашему шаблону в качестве контекста var

Некоторые инструкции для Django, но, как правило, все фреймворки Python (Pyramid, Zope) следуют одному и тому же шаблону:

Виды классов в Джанго

"класс представления $ yourframeworkname" должен дать больше учебников в Google.

...