Python——Flask框架——模板

一、渲染模板

  render_template 函数把Jinja2模板引擎集成到程序中

二、Jinja2变量过滤器

过滤器名说明
safe渲染值是不转义
capitalize把值得首字母转换成大写,其他字母转换成小写
lower把值转换成小写形式
upper把值转换成大写形式
title把值中每个单词的首字母都转换成大写
trim把值的首位空格去掉
striptags渲染之前把值中所有的HTML标签都删掉

**使用super()获取原来的内容。如何使用?

三、Flask扩展框架——Flask-Bootstrap

  (1)Bootstrap是客户端框架,服务器需要做的只是提供引用了Bootstrap层叠样式表(CSS)和JavaScript文件的HTMl响应,并在HTMl、CSS和JavaScript代码中实例化所需要的组件

  (2)安装:pip install flask-bootstrap

from flask.ext.bootstrap import Bootstrap
#...
bootstrap = Bootstrap(app)    

  (3)继承模板

    {% extends "bootstrap/base.html" %}

  (4)Flash-Bootstrap模块中定义的块

块名说明
doc整个HTML文档
html_attribs<html>标签属性
html<html>标签中的内容
head<head>标签中的内容
title<title>标签中的内容
metas一组<meta>标签
styles层叠样式表定义
body_attribs<body>标签的属性
body<body>标签的内容
navbar用户定义的导航条
content用户定义的页面内容
scripts文档底部的JavaScript声明

四、自定义错误页面

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'),404

@app.errorhandler(500)
def internal_server_error(e):
    return render_template('500.html'),500    

五、链接(如导航条)

  Flask提供 url_for() 辅助函数,它可以使用程序URl映射中保存的信息生成URL。

  (1)绝对地址 :url_for('index',_external=True)       返回的地址:127.0.0.1:5000

  (2)动态地址: url_for('user',name='john',_external=True) 返回的地址:127.0.0.1:5000/user/john

六、Flask-Moment本地化日期和时间

  (1)在浏览器中渲染日期和时间

  (2)安装: pip install flask-moment

from flask.ext.moment import Moment
moment = Moment(app)

  (3)导入html内容,引用moment.js库   

    {% block scripts %}
    {{super()}}
    {{moment.include_moment()}}
    {% endblock %}

    format('LLL') 根据客户端电脑中的时区和区域设置渲染日期和时间。format() 函数还可以接受自定义格式说明符。

    Flask-Moment 实现了 moment.js 中的 format() , fromNow() , formTime() , calendar(), valueof() , unix() 方法

  参考文档: http://momentjs.com/docs/#/displaying

  (4)使用语言代码传给 lang() 函数显示多种语言

    {{ moment.lang('es') }}