9.钩子函数

Flask钩子函数

钩子函数:在代码中插入自己想要执行的代码

常用的钩子函数
  • befor_first_request:处理第一次请求之前执行
@app.before_first_request
def first_request():
    print("before_first_request")
  • before_request:在每次请求之前执行。通常可以用这个装饰器来给视图函数增加一些变量
@app.before_request
def before_request():
    # print("在视图函数执行之前执行的钩子函数")
    user_id = session.get("user_id")
    if user_id:
        g.user = 'angle'
  • teardown_appcontext:不管是否有异常,注册的函数都会在每次请求之后执行
@app.teardown_appcontext
def teardown(exc=None):
    if exc is None:
        db.session.commit()
    else:
        db.session.rollback()
    db.session.remove()
  • template_filter:在jinja2模板的时候自定义过滤器,比如可以增加一个upper的过滤器
### 自定义模板过滤器
过滤器本质上就是一个函数,如果在模板中调用这个过滤器,那么就会将这个变量的值作为第一个参数传给过滤器这个函数,然后函数的返回值会作为这个过滤器的返回值
使用到一个装饰器:@app.template_filter('my_cut')

# 指定一个名字
@app.template_filter('my_cut')
def cut(value):
    value = value.replace("hello",'')
    return value
  • context_processor:上下处理器。返回的字典中的键可以在模板上下文中使用
  • errorhandler:errorhandler接收状态码,可以自定义返回这种状态码的响应的处理方法
@app.errorhandler(404)
def not_found(error):
    # return render_template("url"),状态码
    return render_template('404.html'),404

@app.errorhandler(400)
def param_error(error):
    return '参数不正确'

如果不想使用这个钩子,可以使用flask的abort(xxx),比如400状态码,abort(400)

在Uni-app中,它提供了一系列的生命周期钩子函数,用于控制页面或组件的不同阶段执行相应的操作。以下是一些常用的Uni-app钩子函数: 1. beforeCreate: 在实例初始化之后,数据观测和事件配置之前被调用。在这个阶段,不能访问到data、computed等实例属性。 2. created: 在实例创建完成后被立即调用。在这个阶段,可以访问到data、computed等实例属性。 3. beforeMount: 在挂载开始之前被调用。在这个阶段,可以访问到DOM节点,但还未开始渲染。 4. mounted: 在挂载完成后被调用。在这个阶段,可以访问到DOM节点,并且已经完成了渲染。 5. beforeUpdate: 在数据更新之前被调用,发生在虚拟DOM重新渲染和打补丁之前。在这个阶段,可以对更新之前的状态做一些操作。 6. updated: 在数据更新之后被调用,发生在虚拟DOM重新渲染和打补丁之后。在这个阶段,可以访问到更新后的DOM节点。 7. beforeDestroy: 在实例销毁之前被调用。在这个阶段,实例仍然完全可用。 8. destroyed: 在实例销毁之后被调用。在这个阶段,实例已经被销毁,所有的事件监听器和子实例也被移除。 根据具体的需求,你可以选择适合的钩子函数,并在其回调函数中编写相应的代码逻辑。Uni-app的生命周期钩子函数Vue的生命周期钩子函数非常类似,如果熟悉Vue的生命周期,可以直接上手使用Uni-app的钩子函数。 : https://uniapp.dcloud.io/frame?id=%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F : https://www.jianshu.com/p/345db9ea34fa
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值