問題タブ [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.
python - Jinja2 テンプレートをデバッグするには?
私は jinja2 テンプレート システムを django に使用しています。それは本当に速く、私はそれがとても好きです。それにもかかわらず、テンプレートをデバッグする際に問題があります。テンプレートにいくつかのエラー (不適切なタグ、不適切なフィルター名、不適切なブロックの終わり...) を作成した場合、このエラーに関する情報がまったくありません。
たとえば、django ビューでは、次のように記述します。
私は jinja2 テンプレートを書きます: jinja.html:
エラーを生成するために意図的に存在しないフィルターを配置したことに注意してください。
「notexistingfilter() が定義されていません」のようなものを期待していましたが、単純な白地に黒のトレースバックしか得られませんでした (通常の django デバッグ メッセージではありません)。
エラーが発生したテンプレートのファイル名やエラー自体に関する情報が得られないため、jinja2 のデバッグは非常に困難です。
より多くのデバッグ情報を取得し、jinja2 テンプレート内のエラーの場所を見つけるにはどうすればよいですか?
前もって感謝します、
string - Jinja での文字列連結
既存のリストをループして、カンマ区切りの文字列を作成したいだけです。
このようなもの:my_string = 'stuff, stuff, stuff, stuff'
についてはすでに知っていloop.last
ますが、コードの下の 3 行目を WORK にする方法を知る必要があります。
python - PythonのPdfのJinjaのような
JinjaがHTMLに対して行うのと同じように機能する、PythonでのPDF用の最も正確なツールを探しています。
あなたの提案は何ですか?
django - django 1.x と統合された jinja2 テンプレートの翻訳文字列を取得していますか?
以下のように定義されたrender_to_responseを介して、djangoでjinj2テンプレートを使用できます
ただし、django に jinja2 テンプレートの翻訳文字列を抽出させることはできません。
以下の django/utils/translation/trans_real.py の行により、makemessages コマンドが templatize@trans_real.py を介して i18n 用の django テンプレートを解析できるようになるようです。
翻訳文字列を抽出するために jinja2 テンプレートでローカルで使用するために翻訳タグの正規表現を書き換えて makemessages.py を変更するよりも良い方法はありますか?
python - Jinja2 では、ブロック タグと組み合わせてマクロを使用するにはどうすればよいですか?
私はフロント エンド開発者であり、Jinja2 を効果的に使用する方法を知りたいと思っています。現在のサイトを微調整して、継承を使用して複数の基本テンプレートを持ち、ブロック タグを完全に使用してコンテンツを置き換えてオーバーライドし、マクロを使用して引数の受け渡しをサポートしたいと考えています。
私の基本テンプレートには、次のコードが含まれています (簡単にするために編集されています)。
そして、それを拡張する私のページは次のようになります。
したがって、基本的にすべてのページが base を拡張し、マクロを呼び出してそのマクロに引数を渡します。私はそれをすべて理解しているわけではありませんが、主なポイントは、これによりデフォルト値と、ブロック全体を再定義する必要のないある程度の柔軟性が可能になるということです。これにより、ある程度の柔軟性とパワーが得られます。繰り返しますが、これは非常に単純化されています。
唯一の問題は、これによりブロックを使用する能力が無効になることです。マクロは柔軟性のためのものですが、ブロックを使用すると、何かを完全にオーバーライドしたり、親のコンテンツを使用して追加したりできますが、マクロでは実行できません (少なくとも私は考えていません)。問題は、ブロックでラップできないことです。そうしないと、マクロの値が表示されません。たとえば、次のようにします。
title is undefined と表示されるため失敗します。
最終的には、ブロックの力と組織的な側面の両方を利用する方法を探していますが、それでもマクロの論理と簡潔さを利用することができます. この問題にどう対処するかについて、誰かが私に何か助けを与えることができれば、本当に感謝しています.
python - 純粋なPythonコードを使用して生成されたHTMLの空白を削除します
私はJinja2を使用して、通常は非常に大きなサイズのHTMLファイルを生成しています。生成されたHTMLに多くの空白があることに気づきました。このHTMLを最小化するために使用できる純粋なPythonツールはありますか?「最小化」とは、HTMLから不要な空白を削除することを意味します(Googleと同じように、たとえばgoogle.comのソースを見てください)。
このために、tidyなどのライブラリ/外部実行可能ファイルに依存したくありません。
さらに明確にするために、JavaScriptコードは事実上ありません。HTMLコンテンツのみ。
python - Jinja2 テンプレート言語には「ここ」(現在のディレクトリ) という概念がありますか?
Jinja2%(here)s/other/template.html
は、ファイル システム内の現在のテンプレートの場所に関連する他のテンプレートを含めるなど、テンプレート相対パスをサポートしていますか?
python - GoogleAppEngineのJinja2
Google App Engine(Python)のテンプレートエンジンとしてJinja2を使い始めました。
私の質問はこれです:バイトコードキャッシングは本番環境で機能しますか?開発サーバーでは非常にうまく機能していますが、バイトコードのキャッシュはmarshal
モジュールに依存していることをどこかで読みました。これはAppEngineではサポートされていません。別の質問に対するこの回答marshal
は、メソッドの使用に変更することで可能な解決策を提供しpickle
ます。誰かがこれを試しましたか?
一般的に、App EngineでJinja2を使用するときに考慮すべきことは他にありますか?
どんな助けでも大歓迎です!
ありがとう。
python - Jinja2 テンプレート (アプリ エンジンのボトル フレームワーク) でセッション データにアクセスするにはどうすればよいですか?
Google App Engine でマイクロ フレームワークのボトルを実行しています。テンプレートにJinja2を使用しています。そして、私はBeakerを使用してセッションを処理しています。私はまだかなりの Python 初心者で、ここまで来てとてもうれしく思います :) 私の質問は、テンプレート内のセッション データにどのようにアクセスするのですか? 実際の Python コード内で問題なくセッション データを取得できます。そして、jinja テンプレートを呼び出すたびにセッション データを渡すことができました。しかし、サイトのメイン メニュー バーにセッション データが必要なので、すべてのページでデータを渡す必要があります。テンプレートで直接アクセスできるかどうかは誰にもわかりませんか?
たとえば、ヘッダー リンクのセッション データが必要です。
ホーム | よくある質問 | ログイン
また
ホーム | よくある質問 | ログアウト
どんな助けでも大歓迎です!:D
python - Jinja2 は、Google App Engine モデルに対して「None」文字列を返します
Google App Engine モデルなど:
次に、Django ビューから呼び出された Jinja2 テンプレートで、 in インスタンスをM
as に渡しm
ます。
m
を設定せずに初期化するとname
、次のように表示されます。
このMの名前はNoneです。
望ましい期待される出力 (および Django テンプレートを使用した場合の出力) は次のようになります。
このMの名前は です。
なぜこれが起こっているのか、そして望ましい出力と期待される出力を得る方法を知っていますか?