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')
  • 相关阅读:
    Maven项目中的配置文件找不到以及打包问题
    企业信息化快速开发平台 JeeSite
    http缓存浅谈
    <mvc:annotation-driven />注解意义
    Spring中报"Could not resolve placeholder"的解决方案
    eclipse怎么停止building workspace
    利用mybatis-generator自动生成代码
    Java 8 中的 Streams API 详解
    tomca配置文件自动还原问题的解决 server.xml content.xml 等
    tomcat 修改默认字符集
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/12497098.html
Copyright © 2011-2022 走看看