問題タブ [jinja2]
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.
merge - Jinja2辞書を変更/マージするにはどうすればよいですか?
私は Jinja2 ディクショナリを持っており、コンテンツを変更するか、別のディクショナリとマージすることによって、それを変更する単一の式が必要です。
dict の変更: 失敗します。
2 段階の更新: 余分な「なし」を出力します。
使用dict(x,**y)
: 失敗します。
x
属性を変更したり、別の辞書とマージしたりして、Jinja2の辞書を変更するにはどうすればよいでしょうか。
この質問は次のようなものです: 2 つの Python 辞書を単一の式としてマージするにはどうすればよいですか? -- Jinja2 と Python が類似している限り。
design-patterns - コンテンツを別々の場所に配置する Jinja2 マクロを作成する
Jinja2 テンプレートで目次と文末脚注を作成したいと考えています。これらのタスクをどのように達成できますか?
たとえば、次のようなテンプレートが必要です。
には次のsome other file with content.jnj
ようなコンテンツがあります。
私が「かなり/適度に長いかもしれない」と言っているところでは、マクロまたはグローバル関数への引数として引用符で囲むことは合理的ではないと言っている.
Jinja2のフレームワーク内で、これに対応できるパターンがあるかどうか疑問に思っています。
私の最初の考えは、拡張機能を作成して、セクションとエンドノートのブロックを作成できるようにすることです。
次に、グローバル関数 (Jinja2 環境で渡す) を用意します。
ただし、これは文末脚注には機能しますが、目次には何かによる 2 回目のパスが必要になると思います。
読んでくれてありがとう。ご意見やご感想をお寄せいただければ幸いです。
ブライアン
python - CSSファイルのパスの問題
お気に入りのエディター(現時点ではTextPad)でHTMLテンプレートをデザインする場合、F11または適切なツールバーボタンを押すことで、ブラウザーでコードを表示できます。共通のcssルールを別のファイルに入れているので、HTMLに次のコードが含まれています。
これは、.cssファイルが.htmlファイルと同じフォルダーにある場合、または.cssファイルをhrefプロパティで完全にパスした場合に機能します。/// c:/mycssfolder/commoncss.css
ただし、「ライブ」の状況では、.cssファイルを多数の.htmlファイルからアクセスできる共通フォルダーに配置する必要があります(例:href ='css / commoncss.css'、cssフォルダーは次の場所で構成されます)。 Webサーバーレベル)。
cssファイルをすべての.htmlフォルダー(およびそれに伴うすべてのメンテナンスの問題)にコピーせずに、この設計とライブのジレンマをどのように達成できますか?
Jinja2でPython3.1を使用していますが、この問題はすべての言語とテンプレートエンジンに当てはまると思います。
どんな助けでもいただければ幸いです。
アラン
django - Pylons と Django アプリケーション間で Jinja2 テンプレートを共有する
基本的にいくつかの一般的なグリッド レイアウトを実装する 2 つの Jinja2 テンプレートを作成しています。このテンプレートの「ライブラリ」を Pylons アプリと Django アプリの間で共有できるようにしたいと考えています。
Django のテンプレート コンテキストはテンプレートの「トップレベル」からアクセスできるのに対し、Pylons はコンテキストをスレッド ローカルc
(またはtmpl_context
) 変数内にラップするという点で、小さな障害にぶつかりました。
これを示すいくつかの類似の例を次に示します。
ジャンゴ
こんにちは.html:
パイロン
こんにちは.html:
私がやろうとしているhello.html
のは、両方のフレームワークで同じになるようにすることです。
私が見ている 1 つの方法は、Djangorender_to_response
をラップして次のようにすることです。
しかし、それは正しくないと感じています。これに代わる他の方法を見た人はいますか?
ありがとう
import - 割り当てられた変数を Jinja2 にインポート/含める
{% set X=Y %}
Jinja2 では、に組み込まれたファイル内の割り当てられた変数 (つまり ) にどのようにアクセスできますinclude
か?
2 つの Jinja2 ファイルが与えられた場合、次のように動作すると思います。
A.jinja
:
B.jinja
:
A.jinja
Jinja2 でコンパイルすると、次の出力が生成されると思います。
ただし、次のものが生成されます。
N
が設定されているファイルを含むファイルで、上記のような Jinja2 変数にアクセスする方法について、入力をお願いしますN
。
読んでくれてありがとう。
ブライアン
python - Jinja2 でのマルチパート テンプレートの問題
テンプレートを作成するとき、私は通常、3 つの個別の部分 (ヘッダー、本文、フッター) を持ち、それらを組み合わせて単一の文字列を Web サーバー (この場合は CherryPy) に渡します。
私の最初のアプローチは次のとおりです...
しかし、これには反復的なコードが含まれているため、次のアプローチは...
ただし、これは各パーツが独自の環境で作成されることを意味します。これが問題になる可能性はありますか? このアプローチには他に欠点はありますか?
子テンプレート アプローチよりも 3 部構成のアプローチを選択したのは、より柔軟な (そして従うのが簡単である) と思うからですが、間違っているかもしれません。ヘッダー、ボディ、フッターの各ブロックを使用したほうがよいと私に納得させたい人はいますか?
アドバイスをいただければ幸いです。アラン
python - GoogleAppEngineでJinja2をデバッグする
Google App EngineでJinja2を実行していると、役に立たないデバッグ情報が表示されます。私はこれを収集しますこれはFAQのこの項目のためです:
私のトレースバックは奇妙に見えます。何が起こっていますか?
スピードアップモジュールがコンパイルされておらず、ctypesなしのPythonインストール(ctypesなしのPython 2.4、Jython、またはGoogleのAppEngine)を使用している場合、Jinja2は正しいデバッグ情報を提供できず、トレースバックが不完全である可能性があります。現在、JythonまたはAppEngineではctypesが利用できず、スピードアップ拡張機能を使用できないため、適切な回避策はありません。
現時点では、これに対する「適切な」回避策はありませんが、例外が発生したときに出力される情報をより役立つようにするための回避策はありますか?
読んでくれてありがとう。
ブライアン
python - jinja2で複数のブロックを連結しますか?
Python のテンプレート エンジンに jinja2 を使用しています。
複数のブロックのコンテンツを結合し、テンプレートの最後、タグの直前にレンダリングしたいと考えています。{ これらは複数のテンプレートのコード全体のさまざまな JavaScript スニペットであり、ファイルの最後に移動したいのですが、どうすればよいですか? }
編集 :
子 jinja テンプレートで作成されたすべてのインライン JavaScript を移動したいと思います。それらをページの一番下に移動したいと思います。そのため、ページの最後にある親テンプレートにブロックを作成し、それを子テンプレートで使用して JavaScript を記述しました。しかし、複数の子が存在する可能性があるため、複数のjavascriptブロックがあり、複数のブロックはjinja2でサポートされていないため、他の解決策は何ですか? --------私が考える1つの代替案は、インラインである必要がないような方法でjavascript自体を作成することです。
python - root アクセスなしでサーバーに Jinja2 をインストールする
Jinja2 を Web サーバーにインストールしようとしています。彼らが提案したように、コマンド「easy_install Jinja2」を実行しようとしましたが、エラーが発生しました。
[Errno 13] 許可が拒否されました: '/usr/lib/python2.5/site-packages/test-easy-install-15897.write-test'
これは権限の問題だと思ったので、「sudo」で同じことを試しました。パスワードの入力を求められ、権限がないと言われました。
「python setup.py」でJinja2をインストールしようとしましたが、同様の問題に遭遇しました。
Web ホスティング会社 (問題がある場合は DreamHost) に連絡したところ、root アクセスを取得するには VPS サービスの料金を支払う必要があるとのことでした。追加料金を払わずにこれをインストールしたいと思います。彼らは、ホームディレクトリにインストールするのは運がいいかもしれないと言いましたが、何も保証しません. ここで誰もこれを行う方法を知っていますか? 私は今までの人生で Jinja2、easy_install、または setuptools を使用したことがないため、これらのことについてあまり知りません。
python - Jinjaカスタムタグが1回だけ出力されるようにするにはどうすればよいですか?
Jinja2にカスタムタグがあり、最初に呼び出されたときにのみ出力したいものがあります。したがって、次のテンプレートがあるとします。
出力を次のようにします。
これを行うための最良の方法は、テンプレートのコンテキストでフラグを設定して、すでに何かを印刷したかどうかを追跡することだと思います。これがコードサンプルですが、これは正しいですか?
あれは正しいですか?コンテキストが不変であることについていくつか読んだので、これは機能しませんか?(http://jinja.pocoo.org/2/documentation/apiを参照し、不変を検索してください)