有没有好的方法在Tornado模板中应用pychecker/pylint进行Python代码检查?
我正在使用 Tornado 2.0(Python 2.6.5)来构建一个简单的网页应用。
自然,我的 Tornado 模板里会包含一些 Python 代码片段。对于我不在模板里的代码,我使用 pychecker 和 pylint 来检查错误等等。
不过,显然 pychecker 和 pylint 不能直接在模板上运行,因为这些模板并不是标准的 Python 文件(对于不熟悉 Tornado 的人来说:它们是类似 HTML 的片段,里面有一些控制序列和嵌入的 Python 代码)。
所以,我的问题是:有没有人能推荐一个好的方法,把 pychecker/pylint 应用到这些模板文件里的 Python 代码上? 这大概需要从文件中提取出代码。
我可以猜测几种方法,但我很好奇其他人是否也觉得这是个问题,以及他们采取了什么解决方案。我对网页应用的设计和构建还比较新,所以我对那些有实际经验的回答特别感兴趣。
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)都遵循相同的模式:
在谷歌搜索“$你的框架名称 视图类”应该能找到更多教程。