Flask jinja2 模板2019-08-17

1.渲染模板

    为了让程序业务逻辑和表现逻辑分离,所以将html文件提取出来单独存放在templates目录下,通过flask提供的render_template('index.html', dict)函数将模板html进行渲染,而不能再使用字符串格式化或字符串拼接的方式为html插入变量。

    jinja2模板类型可以是任何格式的纯文本文件:HTML,XML,CSV,LaTex

2.模板语法

    Jinja2的定界符:

        {% %} -->添加if 或 for语句

        {{     }}-->添加的表达式(如:字符串、变量、函数)

        {# 注释 #}

    模板的继承

        {% extends ‘base.html’%}--->放在子模板的第一个标签位置

        {% block content %}  在父模板中木效果,在子模板中书写标签会覆盖父模板中标签;如果要在父模板的基础上添加内容,在块中第一行添加 {{ super() }}  {% endblock %}

        块可以为head、title、style、content、footer、script

        {% include '_nanner.html' %}-->局部模板以下划线开头,功能:插入局部模板内容

    Jinja2允许在模板中使用大部分的python对象

3.在模板中定义变量

    {% set navigation = [('/', 'Home'), ('/about', 'About')] %}

    {% set navigation %}

        <li><a  href='/'>Home</a></li>

         <li><a  href='/about'>About</a></li>

    {% endset %}

4.模板宏

定义宏函数和调用宏函数

5.过滤器

    jinja2内置的过滤器:https://www.jianshu.com/p/34910739251e

    自定义模板过滤器:https://www.cnblogs.com/chichung/p/9775099.html

6.测试器

     jinja2内置的测试器:http://www.ttlsa.com/python/flask-jinja2-template-engine-test/

7.url_for()函数的使用

    功能:用来获取URL

    在html中,添加为a标签的href,可改变html的显示:url_for('index') 传入的参数为视图函数的端点

    导入静态文件:url_for('static', filename='xx.jpg') 或使用宏导入静态资源

    作为从定向的参数:redirect(url_for('index'))

8.使用css框架

    从CDN加载静态文件可以调高服务器的访问效率,使用bootstrap时,css在头部导入,js建议在body结尾导入,导入js的顺序为jquery-->popper-->bootstrap

9.消息闪现

    在视图函数中设置:flash(u'Hello Flask')

    在模板中渲染flash消息

通过get_flashed_message()函数获得闪现消息内容

10.自定义错误页面

    错误处理函数需要附加@app.errorhandler(404)装饰器,并传入错误状态码作为参数。

flask的装饰器使用

11.在模板中自定义css和js

    只有使用render_template()传入的模板文件才会被渲染,单独的js或css文件,即使被引用到html中也不会被执行。

    解决方法1:在行内嵌入js或css(修改不方便)

    解决办法2:定义js或css变量(尚不清楚用法)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351