問題タブ [cheetah]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - テンプレートディレクトリ内のすべてのテンプレートと..ディレクトリ内のすべてのコードで実行されるようにCheetahを設定するにはどうすればよいですか。
テンプレートディレクトリ内のすべてのテンプレートと..ディレクトリ内のすべてのコードで実行されるようにCheetahを設定するにはどうすればよいですか。
code.pyで
templates/mafbase.tmplおよびtemplates/mafbase.pyにあります
これは機能しますが、ロードが非常に遅く、タイムアウトエラーが発生します
これは機能しません。例外トレースバックは次のとおりです。
python - WindowsおよびPython2.6.1でのCheetahテンプレートシステムの使用(ネームマッパーの問題)
そのため、CheetahテンプレートエンジンをDjango Webフレームワークと組み合わせて使用しようとしていますが、実際には正常に機能しています。私はそれを使っていくつかの簡単なテストを行い、ページなどをレンダリングすることができました。
ただし、Cheetahテンプレートで非常に単純な変数/属性/メソッドを使用する以外のことを行うと、問題が発生します。それは怒って言います:あなたはNameMapperのCバージョンをインストールしていません!PythonバージョンのNameMapperでは非常に遅いため、CheetahのuseStackFramesオプションを無効にしています。NameMapperのコンパイル済みCバージョンを含むCheetahのコピーを入手する必要があります。「\nNameMapperのCバージョンがインストールされていません!」
そして、Cheetahテンプレート内で呼び出そうとした属性またはメソッドを見つけることができなくなります。
NamemapperのCバージョンをダウンロードしてインストールしようとしましたが、.pydファイルを「インストール」する方法がわかりませんでした(Webで「.pyd」ファイルを検索したところ、動的なPythonモジュールであることがわかりました。 importステートメントで使用できます)。さらに、CheetahのWebサイトにはPython 2.4および2.5用のNamemapperのCバージョンしかありませんが、私はpython 2.6.1を使用しているので、これもおそらく問題です。
誰かがこれに対する解決策を持っていますか?ありがとう。
javascript - PythonでJavaScript文字列を生成する
Python 変数に文字列が格納されており、javascript を含む html を出力しています。javascript 変数を作成する必要があります。
たとえば、Pythonで
Cheetah を使用して html を生成します。チーターコード:
正しいjavascript変数が作成されるように、これを正しくエスケープするにはどうすればよいですか? 実際の html 出力が必要です:
python - Cheetah コンパイル済みテンプレートの使用法
ここで提案されているパフォーマンス上の理由から、pr-compiled テンプレートの使用方法を研究しています。
hello.tmplテンプレートディレクトリで次のように編集します
次に、発行cheetah-compile.exe .\hello.tmplして取得しますhello.py
別のpythonファイルrunner.pyには、次のものがあります。
しかし、結果は
しばらくデバッグすると、次のことがわかりましたhello.py。
トランスが None のように見えるので、 に進みDummyTransactionます。ここで何を見逃しましたか? それを修正する方法について何か提案はありますか?
python - Cheetah with Cherrypy:ベーステンプレートをロードする方法、および開発中の変更時に自動的にロードする方法
私はcherrypy+cheetahアプリに取り組んでおり、開発エクスペリエンスを向上させたいと考えています。
事前に手動でテンプレートをコンパイルすると、すべてが機能します。(更新:これは本番環境での動作です:プリコンパイル、*。tmplを出荷せず、通常のpythonモジュールとしてテンプレートをロードします。)ただし、開発中は、参照されるたびにテンプレートをロードするだけで、アプリケーションを強制終了して再起動する必要はありません。私が直面している問題がいくつかあります。
- 基本テンプレートから継承するテンプレートがある場合、インポートエラーが発生します(基本テンプレートが見つかりません)。実験中に実際に動作させたと思いますが、残念ながら保存できず、動作させることができません。
- 1.動作していると仮定します。ベーステンプレートでも編集内容が再起動せずに取得されるようにするにはどうすればよいですか。
以下は、問題を実証する必要がある私のサンプルアプリケーションです。ディレクトリ構造は次のとおりです。
t.py:
base.tmpl:
index.tmpl:
次のように実行します。
javascript - チェリーピーサーバー側からJavaScriptクライアント側にデータを渡す
全体像の質問。私は Python で書かれた私の e コマース サイトのすべてのショッピング カート メソッドで実行されているチェリーピー サーバーを持っています。フロントエンドでjqueryを使用しています。
Python メソッドへの POST は JavaScript では簡単ですが、データを逆に渡すことはできません。JSON で送り返すことはできますが、必ずしも便利とは限りません。最も簡単な方法は、チーターのようにjavascript変数を作成するvar width = $widthことですが、それは面倒です。
ここで根本的に間違っていることは何ですか? サーバーとクライアントのやり取りを正しく構成しているようには見えません。サーバーメソッドを呼び出す最良の方法と、サーバーからの情報をページに埋め込んで JavaScript で作業できるようにする最良の方法は何ですか?
python - チーターのアン/バウンドメソッド
チーターで静的メソッドを宣言する方法はありますか?IE
snippets.tmpl
other.tmpl
このコードはこのエラーを報告します:NotFound: cannot find 'address'。チーターはそれをバインドされたメソッドとしてコンパイルしています。
snippets.py
静的メソッドを宣言する方法はありますか?そうでない場合、このようなもの(スニペットライブラリ)を実装するためのいくつかの代替方法は何ですか?
python - Cheetah for Pythonで多次元辞書を適切に使用するにはどうすればよいですか?
私は次の辞書を持っています:
そして、チーターを使用して、テンプレートの次のセクション:
コードを実行すると、次のエラーが発生します。
テンプレートの1行目で、#for宣言で、次のようなキー値を分離しようとしました。
ただし、必要な情報を取得するために値を反復処理することはできません。
私は露骨に間違ったことをしていますか?
python - Python Cheetah - テンプレート用の名前と値のペアを指定する
さまざまな環境に展開するために Apache httpd 構成をテンプレート化しようとしています。そのために Python 言語の Cheetah アプリケーションを使用したいと考えています。しかし、コマンド ラインcheetahプログラムに問題があり、Cheetah に対する私の誤解とドキュメントの不足が組み合わさっていると思います。
私の目標は、単一の httpd.conf テンプレート ファイルを作成し、環境固有の定義ファイルから変数を置き換えることです。
httpd.tmpl:
production.env:
この Cheetah テンプレートを埋めるために必要なコマンド ラインは何ですか? 私が使用した:
cheetah f --oext conf --debug httpd
しかし、明らかにprod.env入力ファイルとして読み込まれません。#includeテンプレート ファイルの先頭に を追加します。
そして、私の名前は見つかりませんでした:
いずれにせよ、これは理想的な状況ではありません。なぜなら、cheetah を呼び出すたびにコマンド ラインで名前と値のマッピング ファイルを指定できるようにしたいからです。
ありがとう!
編集: Python スクリプトを記述してファイルの読み取りを実行し、Cheetah API を使用して置き換えることができることを認識しています。ただし、コマンド ラインを使用してテンプレートに入力する方法を探しています。
解決した
@pyfunc が提供するドキュメント リンクのおかげで、これを達成する方法がわかりました。主な問題は--env、現在の環境変数をcheetahに渡すcheetahコマンドラインで提供することです。ただし、これらの環境変数は最初にエクスポートする必要があります。