(一)web服务器框架
(二)flask是轻量级的web框架
(1)变量代码块:
①注释:{# #}
②
#默认只支持GET,其他的需要指定
@app.route('/',methods=['GET','POST'])
def index():
#比如需要传入网址
url_str = 'www.baidu.com'
my_list = [1,3,5,7,9]
my_dict = {
'name':'1111',
'url':'www.baidu.com'
}
#通常模板中使用的变量名和要传的变量名一致
#模板引擎
return render_template('index.html',url_str=url_str,my_list=my_list,my_dict=my_dict)
③
{# 变量代码块: #}
{{ url_str }}<br>
{{ my_list.2 }}<br>
{{ my_dict['url'] }}<br>
(2)控制代码块:
{% %}先输入关键字按Tab补全格式
(3)过滤器
变量和过滤器
JinJia2可以识别所有类型变量,如:
{{ MyList[1] }}
{{ MyObj.test() }}
Jinja2还提供了过滤器用于修改变量
用法:
变量名|过滤器{{ name|uppr }}
PS:过滤器支持链式调用
(4)WEB表单
request:请求对象-->获取请求方式、数据
获取请求的参数:
request.form.get(对应的name)
(5)flash动态数据传递(需要对数据加密scret_key)
html通过get_flashed_messages()获取数据
(6)使用WTF实现表单

python部分:
class LoginFrom(FlaskForm):
testdata = StringField ('测试数据')
submit = SubmitField('提交')
@app.route('/form',methods=['GET','POST'])
def login():
login_form = LoginFrom()
return render_template( 'index.html',form=login_form )
html部分:
<form method="post">
{{ form.testdata.label }}{{ form.testdata }}
{{ form.submit}}
</form>
validate_on_submit()可以一次验证,html需加上:form.csrf_token()
参考:https://www.cnblogs.com/zydev/p/8911682.html
jinja2手册http://docs.jinkan.org/docs/jinja2/templates.html#builtin-filters