是否有一种好方法可以将pychecker/pylint应用于Tornado模板中的python代码?



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

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

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

所以,我的问题是:谁能建议一个好方法来应用pychecker/pylint到这些模板文件中的python代码?这可能涉及到从文件中提取代码。

我可以大胆猜测一下如何做到这一点,但我很好奇其他人是否认为这是一个问题,以及他们采取了什么解决方案。我对web应用程序设计/构建还是相当陌生的,所以我对实际经验指导的答案很感兴趣。

你需要使用视图类模式来避免你的模板被无法分析的Python代码弄乱。

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

  • 将所有"模板逻辑"代码作为类方法。你的模板像调用{{view那样调用它们。Get_full_name}}和def Get_full_name (self):返回self.item。first_name + " " + self.item.last_name

  • 创建类实例

  • 使调用()作为处理的起点

  • 将"self"作为上下文变量传递给模板

Django的一些指令,但通常所有Python框架(Pyramid, Zope)都遵循相同的模式:

Django中的类视图

"$yourframeworkname view class"应该会在Google中产生更多的教程。

最新更新