flask成长记(二)

flask成长记(二)

蜗牛真的是蜗牛啊,就jinja2这么个东西也抽象的暂且理解不了。

不过也真是,你弄那么复杂干什么啊?说的装逼的。

这么理解jinja2这个东西:先把引擎这俩字儿抛开。

一般情况下,会有你提交给服务器东西,服务器存入到数据库和服务器返回给用户数据这两个操作。

模板是用在后面这个返回给用户这个操作。

你总不可能在函数中返回一堆HTML代码吧?虽然这的确可以。

于是也不知道哪个发明了模板,分离了前台和后台,前台的人做好html,后边儿得人弄后台。

但是前后台怎么联系呢?

前台的HTML文件留出若干个空位,后台的人拿到这个有空位的HTML文件,把需要的数据填上去,返回给用户。

那么填数据这个动作就是渲染。

是的你没听错,听起来那么高大上的渲染其实就是个很low的填空空。

jinja2识别的变量

Jinja2 能识别所有类型的变量:

<p>A value from a dictionary: {{ mydict['key'] }}.</p>
<p>A value from a list: {{ mylist[3] }}.</p>
<p>A value from a list, with a variable index: {{ mylist[myintvar] }}.</p>
<p>A value from an object's method: {{ myobj.somemethod() }}.</p>

过滤器

可以使用过滤器修改变量,过滤器名添加在变量名之后,中间使用竖线分隔。例如,下述
模板以首字母大写形式显示变量 name 的值:

Hello, {{ name|capitalize }}

常用的过滤器

safe 渲染值时不转义
capitalize      把值的首字母转换成大写,其他字母转换成小写
lower           把值转换成小写形式
upper           把值转换成大写形式
title           把值中每个单词的首字母都转换成大写
trim            把值的首尾空格去掉
striptags       渲染之前把值中所有的 HTML 标签都删掉
完整的过滤器列表可在 Jinja2 文档( http://jinja.pocoo.org/docs/templates/#builtin-filters)中
查看。

控制结构

Jinja2 提供了多种控制结构,可用来改变模板的渲染流程。本节使用简单的例子介绍其中
最有用的控制结构。

下面这个例子展示了如何在模板中使用条件控制语句:
{% if user %}
    Hello, {{ user }}!
{% else %}
    Hello, Stranger!
{% endif %}
另一种常见需求是在模板中渲染一组元素。下例展示了如何使用 for 循环实现这一需求:
<ul>
{% for comment in comments %}
<li>{{ comment }}</li>
{% endfor %}
</ul>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值