問題タブ [mako]
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 - mako テンプレート: HTML 文字列内で Python 関数を呼び出す
makoでこれを行うにはどうすればよいですか:
python - Makoテンプレートに変数を渡します
Perlでは、Template Toolkitを使用して、これが私が行うことです
Perl
HTML
Makoテンプレートで、どうすればよいですか?それらの機能を確認してくださいrender
。あまりヒントは得られません。
python - auto_now=True および auto_now_add=True によるデータストア アイテムの並べ替え
auto_now=True
と を使用して、データストア内のアイテムを年齢別に並べ替えようとしていますauto_now_add=True
。なんとかdatetime
問題を解決できましたが、年齢で正しく並べ替えることができません。提案をいただければ幸いです。(大文字の変数で申し訳ありません。最終的には修正します。) 私のモデルは次のとおりです。
クエリは次のとおりです。
そして、これは私がMakoテンプレートで使用するものです:
そして、これは悪いソートの出力の例です:
ありがとう!
python - Djangoアプリで代替のテンプレートエンジンを使用することを思いとどまらせる必要がある理由はありますか?
私はいくつかの小さなDjangoプロジェクトを実行しましたが、そのたびにDjangoのテンプレート言語の明らかな制限に見舞われました。ランダムな例として、テンプレートのコンテキストで変数バーとdict fooがある場合、独自のフィルターを作成しない限りfoo[bar]にアクセスできないことを知ってショックを受けました。
これは、ページをデザインする人がプログラマーではない環境向けにDjangoが作成されたためだと読みました。という事は承知しています。
しかし、それは私にとって問題ではないとしましょう。Mako(任意のPython式を実行することもできる)のようなもっと強力なものに切り替えるのではなく、Djangoのテンプレート言語に固執する必要がある理由はありますか?
しばらく前に学校のプロジェクトでマコを使う機会があり、その力がとても気に入りました。たとえば、プロジェクトの一環として、各行とセルの作成がかなり複雑な大きなテーブルを作成する必要がありました。それでも、テンプレートを次のように見せることはできます。
多分これはプレゼンテーションと論理の分離の違反です、しかし男の子はそれが素晴らしくてきれいです。サブルーチン!抽象化!良いもの。
そしてフォローアップの質問:代替のテンプレート言語を使用することがDjangoコミュニティによって嫌われていない場合、誰かが提案するものはありますか?私が言ったように、私はマコが本当に好きですが、それは文字通り私がDjango以外で使用した唯一のものです。
python - Jinja2のインクルードファイルの先頭にJavaScriptを挿入します
Jinja2では、次のコマンドを実行することで、次のように動作させたいと思います。
基本的に目的は、マクロを使用してすべてのJavaScriptを<head>
タグに統合することです。{% call js() %} /* some js */ {% endcall %}
x.html
y.html
期待される結果
jinja2を介してX.htmlを実行すると、結果は次のようになります。
実結果
実際の結果は心強いものではありません。いくつかのタイプの潜在的に照明エラーが発生します。例:
TypeError:マクロ'js'はキーワード引数'caller'を取りません
または、次のような別の基本マクロを追加しようとすると
次の例外が発生します
jinja2.exceptions.TemplateAssertionError:ブロック'head_js'が2回定義されました
block
タグよりもタグの優先順位に関する設計上の問題が発生しているように感じmacro
ます(つまり、マクロは期待どおりにブロックタグをカプセル化していないようです)。
私の質問は非常に単純だと思います。
Jinja2は私が試みていることを実行できますか?もしそうなら、どのように?
そうでない場合は、この種のパターンをサポートする別のPythonベースのテンプレートエンジン(たとえば、mako、genshiなど)があります。これは、GoogleAppEngineで問題なく動作します。
読んでいただきありがとうございます-私はあなたの入力に感謝します。
ブライアン
編集:
この問題を解決するための拡張機能を作成しようとしています。私は途中です-次のコードを使用しています:
これにより、テンプレートの最後にJavascriptを簡単に追加できます...例:
実行env.get_template('x.html').render()
すると、いくつかの明るいコメントと期待される出力が得られます。
もちろん、これは期待どおりにスクリプトを頭に入れることと同じではありませんが、少なくとも1つの場所に簡単に統合できます。
{% include "y.html" %}
ただし、 「y.html」にステートメントが含まれている{% js %}
場合{% js_content %}
、インクルードのステートメントの前にが呼び出されるため、ソリューションは完全ではありません{% js %}
(つまり、開始x.html
前に完全に解析されy.html
ます)。
また、静的javascriptを持つ定数ノードを挿入する必要がありますが、まだ挿入していませんtry/catch
。これは、そこに入れたいことを示しています。これは問題ではありません。
私は進歩を遂げることができてうれしく思います、そして私はインプットに感謝しています。
関連する質問を開きました:インクルード後のJinja2コンパイル拡張機能
編集
解決
jbc
完了すると、環境にはすべてのJavascriptを含む変数が含まれます。たとえば、を介してこれを挿入できstring.Template
ます。
python - Mako テンプレート エンコーディング URL
値が html の変数があります。
これを mako テンプレートに表示すると、出力は次のようになります。
どうしたの?
ありがとう。
python - Pylons / Mako テンプレートを使用してスタンドアロンの Python スクリプトから HTML メールを作成するには?
基本的に、スタンドアロンの python スクリプトに plyons と mako ファイルを「含める」方法を尋ねていますか?
私は Web サイトを運用していますが、Mako テンプルを使用して、cron スクリプトを介して開始する電子メールをフォーマットしたいと考えています。Web サイトでのアクションによって電子メールが生成される場合があるため、できるだけ多くのコードを再利用するために、この方法で行いたいと考えています。
cron スクリプトが特定の URL にアクセスし、pylons を使用して電子メールを生成するようにすることもできますが、そのハックには多くの明らかな問題があります。
pylons - 初心者パイロン/マコテンプレートの質問
私はmako/pylonsのドキュメントを読んでいて、良い例を見つけるのに苦労しています/複数のアプリケーションを1つのページに統合することについての議論、たとえば、ブログアプリケーションとデータベースからランダムな引用を選択するアプリケーションがある場合素晴らしい引用。(例は、説明のためだけに、取るに足らないものです)
だから私は両方のアプリケーションを表示する単一のページを作りたいです、私はテンプレートを書く方法がわかりません、私はnext.body()を見ました、私はテンプレートのアプリケーションからコントローラーを呼び出す必要がありますか?
どうすればその場でこれを行うことができますか?
ページを説明するモデルを作成し、モデルの属性にオブジェクトとして呼び出したい各アプリケーションを含めることはできますか?私はここで唾を吐き、私が見渡すことができる例/チュートリアルへのポインタを望んでいます。
アドバイスありがとうございます。
python - MakoテンプレートのUnicodeEncodeError
私は次のファイルを持っています
ダミー.py
ダミー.html(UTF-8形式で保存)
http://www.makotemplates.org/docs/unicode.htmlからの指示を参照しました
ただし、それでもエラーが発生します
UnicodeDecodeError:'ascii'コーデックは位置0のバイト0xe6をデコードできません:序数が範囲内にありません(128)
私が見逃したものはありますか?