マクロ
テンプレート内のマクロは、Pythonの関数に似ています。パラメーターを渡すことはできますが、戻り値はありません。頻繁に使用されるコードフラグメントをマクロに挿入し、固定されていない値を変数として抽出できます。
importステートメント
実際の開発では、一般的に使用されるいくつかのマクロが個別にファイルに配置され、必要に応じてこのファイルからインポートされます。importステートメントの使用方法は、Pythonでのインポートに似ています。forms.htmlというファイルがあり、マクロが2つあることを前提として、... as ...、...から... import ...またはfrom ... import ... as ...を直接インポートできます入力とテキストエリア
テンプレートをインポートしても、現在のコンテキストの変数はインポートされたテンプレートに追加されないことに注意してください。現在のコンテキストの変数にアクセスする必要があるマクロをインポートする場合、2つの方法があり
ます。•明示的に渡す着信要求または要求オブジェクトの属性がマクロのパラメーターとして使用されます
•
コンテキストを使用したマクロのインポート(コンテキストあり)およびコンテキストを使用したインポート(コンテキストあり)
@app.route("/macro/")
def macro():
return render_template("macro.html")
カスタマイズされた「マクロ」入力タグは、要件を完了するためにパラメーターを渡すことによって一度だけ書き込まれ、入力タグをすばやく作成しました
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% macro input(name,value='', type='text') %}
<input type="{{ type }}", name="{{ name }}", value="{{ value }}">
{% endmacro %}
<table>
<tr>
<td>用户名:</td>
<td>{{ input('username') }}</td>
</tr>
<tr>
<td>密码:</td>
<td>{{ input('password',type='password') }}</td>
</tr>
<tr>
<td>密码:</td>
<td>{{ input(value='提交',type='submit')}}</td>
</tr>
</table>
</body>
</html>
インポート…
インポートマクロとして:
2つのインポート方法:
テンプレートへのコンテキストパスパラメータ