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')
  • 相关阅读:
    JSP&JavaBean
    Cookie&&Session
    多个请求使用同一个 Servlet
    C3P0--数据库连接池
    navicat设置唯一键——unique
    J2EE常用组件简介
    JSP基础知识_3
    JSP基础知识_2
    JSP基础知识_1
    Android
  • 原文地址:https://www.cnblogs.com/lee-xingxing/p/12497098.html
Copyright © 2011-2022 走看看