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