Python——Flask框架——模板

时间:2021-09-06 07:46:41

一、渲染模板

  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') }}