# coding:utf-8 from flask import Flask, render_template app = Flask(__name__) @app.route('/') @app.route('/<name>') def index(name=None): # 使用render_template()来渲染模板 参数第一个为模板页面,第二个为向模板传入的参数,若是为多个值依次传入 return render_template('index.html', name=name) if __name__ == "__main__": app.run(host='0.0.0.0', port=12345, debug=True)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> {% if name %} <h1>Hello {{ name }} </h1> {% else %} <h1>Hello World </h1> {% endif%} </body> </html>
render_template('index.html', name=name, age=18 .....) 传入多少均可以
def index(name=None): data = { 'name': name, 'age': 18 } return render_template('index.html', data)
# 将字典拆包的方式传入方法中 return render_template('index.html', **data)
def index(name=None): data = { 'name': name, 'age': 18, 'my_dict': {'city': 'harbin'}, 'my_li': [1, 2, 3, 4, 5], } return render_template('index.html', **data)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>title</title> </head> <body> {% if name %} {# {{ 写入传入的变量名 }} #} <h1>Hello {{ name }} </h1> <hr> <h1>age {{ age }} </h1> <hr> {# 第一种获取字典的方式 #} <h1>my_dict {{ my_dict['city'] }} </h1> <hr> {# 第二种获取字典的方式 #} <h1>my_dict {{ my_dict.city }} </h1> <hr> {# 获取列表的方式 #} <h1>my_li {{ my_li }} </h1> <hr> {# 遍历列表 #} {% for li in my_li %} <h1>my_li {{ li }} </h1> {% endfor %} <hr> {# 获取列表中的单个值,这里获取的是第一个元素 #} <h1>my_li {{ my_li[0] }} </h1> <hr> {% else %} <h1>Hello World </h1> {% endif%} </body> </html>
<h1>my_li[0] + my_li[1] = {{ my_li[0] + my_li[1] }} </h1> <h1>{{ "hello" + "worlds" }} </h1>
safe:禁用转义html
<p>{{ '<em>hello</em>' | safe }}</p>flask
capitalize:把变量值的首字母转成大写,其他字母转小写;api
<p>{{ 'hello' | capitalize }}</p>浏览器
lower:把值转成小写;安全
<p>{{ 'HELLO' | lower }}</p>app
upper:把值转成大写;ide
<p>{{ 'hello' | upper }}</p>函数
title:把值中的每一个单词的首字母都转成大写;spa
<p>{{ 'hello' | title }}</p>debug
trim:把值的首尾空格去掉;
<p>{{ ' hello world ' | trim }}</p>
reverse:字符串反转;
<p>{{ 'olleh' | reverse }}</p>
format:格式化输出;
<p>{{ 'name = %s , age = %d' | format('name',17) }}</p>
striptags:渲染以前把值中全部的HTML标签都删掉;
<p>{{ '<em>hello</em>' | striptags }}</p>
<p>{{ “ hello world “ | trim | upper }}</p>
first:取第一个元素
<p>{{ [1,2,3,4,5,6] | first }}</p>
last:取最后一个元素
<p>{{ [1,2,3,4,5,6] | last }}</p>
length:获取列表长度
<p>{{ [1,2,3,4,5,6] | length }}</p>
sum:列表求和
<p>{{ [1,2,3,4,5,6] | sum }}</p>
sort:列表排序
<p>{{ [6,2,3,1,5,4] | sort }}</p>
1 # coding:utf-8 2 3 from flask import Flask, render_template 4 5 app = Flask(__name__) 6 7 8 @app.route('/') 9 @app.route('/<name>') 10 def index(name=None): 11 data = { 12 'name': name, 13 'age': 18, 14 'my_dict': {'city': 'harbin'}, 15 'my_li': [1, 2, 3, 4, 5], 16 } 17 return render_template('index.html', **data) 18 19 20 def list_step_2(li): 21 """自定义过滤器""" 22 return li[::2] 23 24 25 # 注册过滤器 26 app.add_template_filter(list_step_2, 'li2') 27 28 29 if __name__ == "__main__": 30 app.run(host='0.0.0.0', port=12345, debug=True)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>title</title> 6 </head> 7 <body> 8 <h1>过滤my_li = {{ my_li | li2 }}</h1> 9 </body> 10 </html>
1 # coding:utf-8 2 3 from flask import Flask, render_template 4 5 app = Flask(__name__) 6 7 8 @app.route('/') 9 @app.route('/<name>') 10 def index(name=None): 11 data = { 12 'name': name, 13 'age': 18, 14 'my_dict': {'city': 'harbin'}, 15 'my_li': [1, 2, 3, 4, 5], 16 } 17 return render_template('index.html', **data) 18 19 20 # 第一种方式添加过滤器 21 def list_step_2(li): 22 """自定义过滤器""" 23 return li[::2] 24 25 26 # 第二种凡是添加过滤器 27 @app.template_filter("fir") 28 def list_first_element(li): 29 return li[0] 30 31 32 # 注册过滤器 33 app.add_template_filter(list_step_2, 'li2') 34 35 36 if __name__ == "__main__": 37 app.run(host='0.0.0.0', port=12345, debug=True)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>title</title> 6 </head> 7 <body> 8 <h1>第1种添加过滤器方式 过滤my_li = {{ my_li | li2 }}</h1> 9 <h1>第2种添加过滤器方式 过滤my_li = {{ my_li | fir }}</h1> 10 </body> 11 </html>