2011-08-05 4 views
1

私はTornado 2.0(Python 2.6.5)を使って簡単なWebアプリケーションを構築しています。pyorncker/pylintをTornadoテンプレートのpythonコードに適用する良い方法はありますか?

もちろん、私のTornadoテンプレートにはPythonコードのスニペットが含まれています。私の非テンプレートコードでは、エラーをチェックするためにpycheckerとpylintを使用しています。

もちろんpycheckerとpylintはテンプレートに対して直接実行することはできません。テンプレートはPythonファイルではありません(Tornado以外のユーザーの場合:HTMLのようなコントロールシーケンスや埋め込まれたPythonコード付きのスニペットです)。

だから、私の質問は:誰もpychecker/pylintをこれらのテンプレートファイルのpythonコードに適用する良い方法を提案できますか?おそらく、これはファイルからコードを抽出することを含むでしょう。

これを行う方法についてはいくつかの推測をすることができますが、他の人がこれを問題と認識し、どのような解決策をとっているのか不思議です。私はまだかなりのWebアプリの設計/建設に新しいですので、私は実践的な経験に導かれた答えに興味があります。

+0

方法はありません。ビュークラスを使うことをお勧めします。テンプレートごとにクラスを作成し、すべてのコードをこのクラスに配置し、このクラスのインスタンスをテンプレートのパラメータとして指定します。 Pythonコードが埋め込まれていると、すぐに問題が発生します。デバッグとパフォーマンス分析の理由から、すべてのコードを.pyファイルに保存することは、非常に良い方法です。 –

+0

アドバイスMikkoをありがとう。私は、あなたの提案は確かに行く方法だと思う。あなたのコメントを完全な答えに "アップグレード"して、私があなたにそれについてより多くの信用を与えることができるようにしてください! – capdigi

答えて

0

解析できないPythonコードでテンプレートが乱雑にならないようにするには、ビュークラスパターンを使用する必要があります。

  • 関数の代わりに、あなたのビューを処理するためのPythonのクラスを作成します

  • クラスメソッドとして、すべての「テンプレートの論理」のコードを持っています。あなたのテンプレートは次のように{{view.get_full_name}}とデフget_full_name(自己を)それらを呼び出す:リターンself.item.first_name + "" + self.item.last_name

  • は、あなたのクラスのうちのインスタンスを作成します

  • コール()出発点として、あなたの処理のため

  • 峠あなたのテンプレートに「自己」のコンテキストVARとして

いくつかのDjangoのための指示が、GENERを作ります

Class views in Django

は "$ yourframeworknameビュークラスは、" グーグルでより多くのチュートリアルが得られるはずです:味方全てのPythonフレームワーク(ピラミッド、Zopeは)同じパターンに従ってください。

関連する問題