1

我正在使用 Tornado 2.0 (Python 2.6.5) 来构建一个简单的网络应用程序。

自然,我的 Tornado 模板包含 Python 代码片段。对于我的非模板代码,我使用 pychecker 和 pylint 来检查错误等。

但是,显然 pychecker 和 pylint 不能直接在模板上运行,b/c 模板不是正确的 python 文件(对于非 Tornado 用户:它们是类似 html 的片段,带有一些控制序列和嵌入的 python 代码)。

所以,我的问题是:任何人都可以建议一种将 pychecker/pylint 应用于这些模板文件中的 python 代码的好方法吗?据推测,这将涉及从文件中提取代码。

我可以大胆猜测如何做到这一点,但我很好奇其他人是否认为这是一个问题以及他们所追求的解决方案。我对网络应用程序设计/构建仍然相当陌生,所以我对以实践经验为指导的答案很感兴趣。

4

1 回答 1

0

您需要使用视图类模式来避免模板与无法分析的 Python 代码混淆。

  • 创建一个 Python 类来处理您的视图,而不是函数

  • 将所有“模板逻辑”代码作为类方法。您的模板将它们称为 {{ view.get_full_name }} 和 def get_full_name(self): return self.item.first_name + " " + self.item.last_name

  • 在您的班级中创建实例

  • call () 作为处理的起点

  • 将“self”作为上下文变量传递给您的模板

一些针对 Django 的说明,但通常所有 Python 框架(Pyramid、Zope)都遵循相同的模式:

Django 中的类视图

“$yourframeworkname 视图类”应该会在 Google 中产生更多教程。

于 2011-08-11T08:10:40.083 回答