原创

Flask(9) - jinja2模板使用(宏和import)

<!--使用宏模板创建登录表单-->

<!--
模板中的宏和python中的函数类似,可以传递参数(参数可以是默认值),但是没有返回值,可以将复用
的代码片段放到宏中,把一些不固定的值抽取出来做一个变量
-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

<!--把input标签定义成宏-->

{% macro input(name="",value="", type="text") %}
    <input type="{
  {type}}" name="{
  { name }}" value="{
  { value }}">
{% endmacro %}

<h1>登录</h1>
<table>
    <tbody>
    <tr>
        <td>用户名:</td>
        <!--调用宏,并传name参数-->
        <td>{
  { input("username") }}</td>
    </tr>
    <tr>
        <td>密码:</td>
        <!--传name参数和type参数-->
        <td>{
  { input("password",type="password") }}</td>
    </tr>
    <tr>
        <td>
            {
  { input(value="提交",type="submit") }}
        </td>
    </tr>
    </tbody>
</table>
</body>
</html>

import导入宏

<!--宏模板文件-->
<!--macros.html-->

{% macro input(name="",value="", type="text") %}
    <!--value加变量参数-->
    <!--<input type="{
  {type}}" name="{
  { name }}" value="{
  { username }}">-->
    <input type="{
  {type}}" name="{
  { name }}" value="{
  { value }}">
{% endmacro %}
<!--index.html-->

<!--导入macros模板-->

<!--如果需要导入value变量参数-->
<!--{% from "macros.html" import input with context %}-->

{% from "macros.html" import input %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>

<h1>登录</h1>
<table>
    <tbody>
    <tr>
        <td>用户名:</td>
        <td>{
  { input("username") }}</td>
    </tr>
    <tr>
        <td>密码:</td>
        <td>{
  { input("password",type="password") }}</td>
    </tr>
    <tr>
        <td>
            {
  { input(value="提交",type="submit") }}
        </td>
    </tr>
    </tbody>
</table>
</body>
</html>

 

正文到此结束
评论

登录后才能发表评论 登录/注册

0评论
  • 还没有评论,快来抢沙发吧!