zoukankan      html  css  js  c++  java
  • Flask 第十六话之钩子函数

    Flask中常用钩子函数

    一、before_first_request:处理第一次请求之前执行

    @app.before_first_request
    # 处理第一次请求之前执行
    def first_request():
        print("第一次请求前")

    二、before_request:每次视图函数请求前

    @app.before_request
    # 视图函数每次请求前
    def before_req():
        print("视图函数每次请求前")

     三、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:模板过滤器。一般用于一些自定义的渲染模板

    @app.template_filter
    # 模板过滤器。一般用于一些自定义的渲染模板
    def func(s):
        s.upper()

    五、context_processor:上下文处理器。返回的字典中的键可以在模板上下文中使用,可以公用数据

    @app.context_processor
    # 上下文处理器。返回的字典中的键可以在模板上下文中使用
    def content():
        return {"aaa":111}

     index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {{ aaa }}
    </body>
    </html>

    lists.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {{ aaa }}
    </body>
    </html>

     六、errorhandler():errorhandler接收状态码,可以自定义返回状态码的处理方法

    @app.errorhandler(404)
    # errorhandler接收状态码,可以自定义返回状态码的处理方法
    def page_not_find(error):
        return "这个没有找到"

     手动抛出异常:

    from flask import render_template,abort
    from ext import app
    
    @app.route('/')
    def hello_world():
        # 直接报错
        abort(404)
        return render_template('index.html')
  • 相关阅读:
    通用Excel导入设计
    批量执行SQL文件
    ExtJS之对话框及窗口篇
    Windows Phone 7完整版模拟器
    C#迭代器
    XNA游戏开发之速度调整
    ExtJs之Panel篇
    Table锁定行列
    PB调用WebService示例(含源码)
    调用CodeSmith类库实现代码生成(含源码)
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/12497098.html
Copyright © 2011-2022 走看看