jinja2模板引擎的变量引入

Zss 发表于:

在我需要对HTML中的一些字符进行替换的时候,可以使用到render_template来将python的变量引入到某个html中

jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等。

from flask import Flask,render_template
render_template('index.html',title='System monitor',imagename = '%s'%random.randint(1,5))

此时的index.html中的{{  title }}的变量则为python文件中的System monitor字符,这样子就将其引入到了HTML中

此时的{{  title }}将被System monitor所替换掉,当然后者一起引入的imagename也将以其引入,而imagename是一个变化的值,每次生成一个随机数

随机数对应不同的title图表,这样看来每次打开的网页的title图标是不一样的

<head>
   <title>System Monitor</title>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1" />
   <link rel="stylesheet" href="../static/main.css" />
   <link rel="shortcut icon" href="/static/fun{{ imagename }}.ico">
</head>
<body>

<!-- Header -->
<header id="header" class="alt">
   <div class="inner">
      <h1>{{ title }}</h1>
      <p>Some information about the server</p>
   </div>
</header>