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')
  • 相关阅读:
    jQuery index()方法使用
    杂记
    Tp框架代码杂记
    tp U方法的{:U('Index/index',array('id'=>$vo[id]))}
    mb_substr=0,5,'utf-8'
    Thinkphp 超长sql语句编写
    http_build_query()生成url字符串
    html_entity_decode 将数据库里的 | 互联网金融 &ldquo;野蛮生长&rdquo; 的休止符| &rdquo转义成”“
    ThinkPHP 左右定界符
    python中unicode和str的组合
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/12497098.html
Copyright © 2011-2022 走看看