1. 程式人生 > 其它 >5 flask之模板語言-Jinja2

5 flask之模板語言-Jinja2

比django中多可以加括號,執行函式,傳引數

1 專案路徑下新建templates資料夾

class Flask(Scaffold):
        def __init__(
        self,
        import_name: str,
        static_url_path: t.Optional[str] = None,
        static_folder: t.Optional[t.Union[str, os.PathLike]] = "static",
        static_host: t.Optional[str] = None,
        host_matching: bool = False,
        subdomain_matching: bool = False,
        template_folder: t.Optional[str] = "templates",
        instance_path: t.Optional[str] = None,
        instance_relative_config: bool = False,
        root_path: t.Optional[str] = None,
    ):
        super().__init__(
            import_name=import_name,
            static_folder=static_folder,
            static_url_path=static_url_path,
            template_folder=template_folder,
            root_path=root_path,
        )


 

 

 

 

2 templates下新建index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>使用者列表</h1>
    <table>
        {% for k,v in user_dict.items() %}
        <tr>
            <td>{{k}}</td>
            <td>{{v.name}}</td>
            <td>{{v['name']}}</td>
            <td>{{v.get('name')}}</td>
            <td><a href="/detail/{{k}}">檢視詳細</a></td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

3 main.py

from flask import Flask, render_template

app = Flask(__name__)
USERS = {
    1: {'name': '張三', 'age': 18, 'gender': '男', 'text': "道路千萬條"},
    2: {'name': '李四', 'age': 28, 'gender': '男', 'text': "安全第一條"},
    3: {'name': '王五', 'age': 18, 'gender': '女', 'text': "行車不規範"},
}


@app.route('/index', methods=['GET'])
def index():
    return render_template('index.html', user_dict=USERS)


if __name__ == '__main__':
    app.run()

執行程式,訪問