装饰器
外层函数嵌套内层函数
外层函数返回内层函数
内层函数调用外层函数的参数
外层函数传入的参数即为被装饰的函数
from functools import wraps
def is_login(func):
def check():
return func()
return check
蓝图
产生背景:管理路由地址
安装:
pip install flask_blueprint
第一步:
blue = Blueprint(‘first’,__name__)
@blue.route("路由地址")
第二步:
flask对象app.register_blueprint(blueprint=blue)
有参数跳转:redirect(url_for('生成蓝图的第一个参数.跳转的函数名称', 参数名=值, 参数名2=值2))
无参数跳转:redirect(url_for('生成蓝图的第一个参数.跳转的函数名称'))
模板
父模板:定义网站模板的大体框架,定义可以被动态填充内容的block块;
block块定义: {% block name %} {% endblock %};
注意:block名称不能取同名
子模板:继承父模板: {% extends '父模板' %};
动态可选择性的填充父模板中定义的block块, 使用{% block name %} 动态内容 {% endblock %}
语法:
解析标签: {% 标签名 %} {% end标签名 %}:
for: {% for a in [] %} {% else %} {% endfor %};
if: {% if 判断条件 %} {% else %} {% endif %};
block: {% block name %} {% endblock %}
解析变量: {{ 变量名 }}(loop:变量):
loop.index: 从1开始的值;
loop.index0: 从0开始;
loop.revindex: 倒序到1结束;
loop.revindex0: 倒序到0结束;
loop.first: 第一次循环返回True;
loop.last: 最后一次循环返回True
注解: {# 注解内容 #}
过滤器
写法: {{ 变量 | 过滤器 }}
safe,length, upper,lower