Flask建站笔记-使用jinjia模板

jinjia语法类似于JavaWeb中的jsp。可以以特定语法规则直接在html中与后台产生交互,并实现一些简单的逻辑操作。

  1. 后台函数
@blog.route("/blog")
def blog():
    data = [...]
    return render_templates("index.html", data=data)
  1. 变量表示
{{ data[0] }}
  1. if判断
{% if data %}
<p>{{ one }}<p>
{% endif %}
  1. for循环
{% for one in data %}
<p>{{ one }}<p>
{% endfor %}
  1. block块

使用block块,我们可以定义一个模板html,实现页面风格的统一

base.html

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}Title{% endblock %}</title>
</head>
<body style="background-color:#eeeeee">
    <!--页头-->
    <div id="divHead" class="row" style="background-color: #4d91a1">
    </div>

    <!--内容块-->
    {% block content %}
    {% endblock %}

    <!--页尾-->
    <div class="row" style="background-color: #333333; width: 100%; height: 40px; position: fixed; bottom: 0px"></div>
    <script src="/static/plugin/jquery/jquery-1.9.1.min.js"></script>
    <script src="/static/plugin/bootstrap-3.3.7/js/bootstrap.min.js"></script>

    <!--JS加载块-->
    {% block js %}
    {% endblock %}
</body>
</html>

在base.html中定义的block块,均可在被继承的页面中覆写

extend.html

```html
<!-- 声明当前页面继承自base -->
{% extends 'base.html' %}

{% block title %}NewTitle{% endblock %}

{% block content %}
<p>NewHtml</p>
{% endblock %}

{% block js %}
<script src="/static/js/add.js"></script>
{% endblock %}
  1. macro宏

使用宏可以定义一个在html中使用的函数,函数获取参数,返回值(内容处理)或文本(动态元素)。我们可以将常用的函数放在一个html文件内,在需要使用的地方导入即可

  1. 定义一个宏集合 ‘_macro.html’
{# 定义一个可动态生成的input元素 #}
{% macro input(name,value='',type='text',size=20) %}
    <input type="{{ type }}"
        name="{{ name }}"
        value="{{ value }}"
        size="{{ size }}"/>
{% endmacro %}

  1. 使用宏
{% import '_macro.html' as macro %}

<label for="username">用户名:</label>
{{ macro.input('username') }}
  1. 自定义全局函数

自定义全局函数在python文件中定义,通过’add_template_global’方法传入模板使用

  1. 定义一个全局函数
def time_format(str_time):
    return str_time.sub[0: 10]

app.add_template_global(time_format, "time_format")
  1. 在html中使用
{% time_new = time_format("2018-01-01 09:33:24") %}
<p>{{ time_new }}</p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值