Cheetahテンプレートで継承を使用するにはどうすればよいですか?

ノーズインチ

Cheetah3の場合、継承機能の非常に大まかなドキュメントがあります:http://cheetahtemplate.org/users_guide/inheritanceEtc.html#extends

しかし、実際に機能させる方法がわかりません。

2つのテンプレートファイルがあるとしましょう。

A.tmpl

#def message
Hello Cheetah
#end def
This is an example: $message

B.tmpl

#extends A
#def message
Hello Cheetah with Inheritance
#end def

および次のような単純なドライバプログラム:

from Cheetah.Template import Template

t = Template(file='B.tmpl')
print t

このコードを実行するときにクラスAがないため、明らかにそれは機能しません。

しかし、それはどうですか?または、継承はプリコンパイルされたCheetahテンプレートでのみ可能ですか?

博士号

1つのテンプレートを他のテンプレートからインポートする方法は2つあります。

  1. コマンドラインプログラム*.pyを使用して、すべてのテンプレートをファイルにコンパイルしますcheetah compile次に、インポートはPythonレベルで機能します。

編集後にすべてのテンプレートを半自動でコンパイルするには、次のことをお勧めしますMakefile(GNUフレーバー)。

.SUFFIXES: # Clear the suffix list
.SUFFIXES: .py .tmpl

%.py: %.tmpl
        cheetah compile --nobackup $<
        python -m compile [email protected]

templates = $(shell echo *.tmpl)
modules = $(patsubst %.tmpl,%.py,$(templates))

.PHONY: all
all: $(modules)

(忘れないでください— makefileには、スペースではなくタブ付きのインデントが必要です。)

  1. Pythonのインポートを無効にして、Cheetahを*.tmplファイルから直接インポートします。

コード:

from Cheetah import ImportHooks
ImportHooks.install()

import sys
sys.path.insert(0, 'path/to/template_dir')  # or sys.path.append

PS。ImportHooksが自動的にインポートしよう*.pyc*.py*.tmpl-最初に発見されたものは何でも。数日前、私は自動的にコンパイルするImportHooksを拡張*.tmplする*.py*.pyc私はさらにドキュメントを書き、数日でプッシュするつもりです。数か月以内に最終リリースのCheetah3.2を期待してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

テンプレートとユニオンを継承するにはどうすればよいですか?

分類Dev

継承とテンプレートを使用してフレンドクラスを使用するにはどうすればよいですか

分類Dev

Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

分類Dev

Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

分類Dev

継承できるテンプレート固有のタイプを定義するにはどうすればよいですか?

分類Dev

部分的なクラステンプレートの特殊化で継承を実装するにはどうすればよいですか?

分類Dev

継承されたコントロールのプロパティとしてTextFormatFlagsを使用するにはどうすればよいですか?

分類Dev

C#で継承のプロパティを使用するにはどうすればよいですか?

分類Dev

AEM 6.2でページプロパティを継承するにはどうすればよいですか?

分類Dev

Javaで@JsonFormatアノテーションを継承するにはどうすればよいですか?

分類Dev

テンプレートを使用するクラスから継承するときにメソッドをオーバーライドするにはどうすればよいですか?

分類Dev

プロパティ変更イベントを継承ラダーまで「追跡」するにはどうすればよいですか

分類Dev

ブートストラップを使用するフラスコ内のテンプレートを正しく継承するにはどうすればよいですか?

分類Dev

CassandraのDatastaxエンティティマッパーを使用するときに継承を使用するにはどうすればよいですか?

分類Dev

Jinja2を使用してモバイルとデスクトップで重複したテンプレートの継承を削除するにはどうすればよいですか?

分類Dev

速度テンプレートで「for」ループを使用するにはどうすればよいですか?

分類Dev

cssで子供のプロパティを継承するにはどうすればよいですか?

分類Dev

cssで子供のプロパティを継承するにはどうすればよいですか?

分類Dev

継承を含むArrayListsにプロパティを追加するにはどうすればよいですか?

分類Dev

Railsアプリテンプレートでpostgresを使用するにはどうすればよいですか?

分類Dev

DojoでテンプレートタグにDjangoを使用するにはどうすればよいですか?

分類Dev

継承されたプロパティをEFデータストアに動的に追加するにはどうすればよいですか?

分類Dev

Beego:テンプレートでIf-else条件を使用するにはどうすればよいですか?

分類Dev

golangテンプレートで除算を使用するにはどうすればよいですか?

分類Dev

JDBCテンプレートでUUIDを使用するにはどうすればよいですか?

分類Dev

Djangoテンプレートで「isnotNone」を使用するにはどうすればよいですか?

分類Dev

Sphinxを他のテンプレートで使用するにはどうすればよいですか?

分類Dev

Djangoテンプレートの{%if is_exist%}で{{variable}}を使用するにはどうすればよいですか?

分類Dev

テンプレートのfold式でconstexprを使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    テンプレートとユニオンを継承するにはどうすればよいですか?

  2. 2

    継承とテンプレートを使用してフレンドクラスを使用するにはどうすればよいですか

  3. 3

    Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

  4. 4

    Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

  5. 5

    継承できるテンプレート固有のタイプを定義するにはどうすればよいですか?

  6. 6

    部分的なクラステンプレートの特殊化で継承を実装するにはどうすればよいですか?

  7. 7

    継承されたコントロールのプロパティとしてTextFormatFlagsを使用するにはどうすればよいですか?

  8. 8

    C#で継承のプロパティを使用するにはどうすればよいですか?

  9. 9

    AEM 6.2でページプロパティを継承するにはどうすればよいですか?

  10. 10

    Javaで@JsonFormatアノテーションを継承するにはどうすればよいですか?

  11. 11

    テンプレートを使用するクラスから継承するときにメソッドをオーバーライドするにはどうすればよいですか?

  12. 12

    プロパティ変更イベントを継承ラダーまで「追跡」するにはどうすればよいですか

  13. 13

    ブートストラップを使用するフラスコ内のテンプレートを正しく継承するにはどうすればよいですか?

  14. 14

    CassandraのDatastaxエンティティマッパーを使用するときに継承を使用するにはどうすればよいですか?

  15. 15

    Jinja2を使用してモバイルとデスクトップで重複したテンプレートの継承を削除するにはどうすればよいですか?

  16. 16

    速度テンプレートで「for」ループを使用するにはどうすればよいですか?

  17. 17

    cssで子供のプロパティを継承するにはどうすればよいですか?

  18. 18

    cssで子供のプロパティを継承するにはどうすればよいですか?

  19. 19

    継承を含むArrayListsにプロパティを追加するにはどうすればよいですか?

  20. 20

    Railsアプリテンプレートでpostgresを使用するにはどうすればよいですか?

  21. 21

    DojoでテンプレートタグにDjangoを使用するにはどうすればよいですか?

  22. 22

    継承されたプロパティをEFデータストアに動的に追加するにはどうすればよいですか?

  23. 23

    Beego:テンプレートでIf-else条件を使用するにはどうすればよいですか?

  24. 24

    golangテンプレートで除算を使用するにはどうすればよいですか?

  25. 25

    JDBCテンプレートでUUIDを使用するにはどうすればよいですか?

  26. 26

    Djangoテンプレートで「isnotNone」を使用するにはどうすればよいですか?

  27. 27

    Sphinxを他のテンプレートで使用するにはどうすればよいですか?

  28. 28

    Djangoテンプレートの{%if is_exist%}で{{variable}}を使用するにはどうすればよいですか?

  29. 29

    テンプレートのfold式でconstexprを使用するにはどうすればよいですか?

ホットタグ

アーカイブ