Python Flask中的全局GET管理

Python Flask中的全局GET管理,python,flask,get,Python,Flask,Get,在Flask中是否有“全球获取管理”的方法 例如: 我想通过popover在flask应用程序的任何页面上显示错误消息。如果用户单击“关闭”按钮,应用程序将使用新的get参数“message_read=1”重新加载页面。 我想捕捉这个GET参数。我确信有一种比在每个app.route(很多)中都写一个检查更好的方法。你能给我一个提示吗 多谢各位 添加一个before-request函数并在那里处理它 您可以使用减量器。了解python装饰器 下面是一个使用flask定制装饰器的演示。下面的代码显

在Flask中是否有“全球获取管理”的方法

例如: 我想通过popover在flask应用程序的任何页面上显示错误消息。如果用户单击“关闭”按钮,应用程序将使用新的get参数“message_read=1”重新加载页面。 我想捕捉这个GET参数。我确信有一种比在每个app.route(很多)中都写一个检查更好的方法。你能给我一个提示吗


多谢各位

添加一个before-request函数并在那里处理它


您可以使用减量器
。了解python装饰器

下面是一个使用flask定制装饰器的演示。下面的代码显示了您的用例的装饰器定义和用法

代码

from flask import Flask,request
from functools import wraps


def popup_message(f):
    @wraps(f)
    def f_(*args,**argv):
         message_read = request.args.get('message_read', None)
         if message_read is not None:
             return  message_read
         else:
             return f(*args,**argv)
    return f_




app = Flask(__name__)

@app.route('/earth')
@popup_message
def hello_earth():
    return 'Hello,earth'

@app.route('/world')
@popup_message
def hello_world():
    return 'Hello, World!' 

app.run()
用法

from flask import Flask,request
from functools import wraps


def popup_message(f):
    @wraps(f)
    def f_(*args,**argv):
         message_read = request.args.get('message_read', None)
         if message_read is not None:
             return  message_read
         else:
             return f(*args,**argv)
    return f_




app = Flask(__name__)

@app.route('/earth')
@popup_message
def hello_earth():
    return 'Hello,earth'

@app.route('/world')
@popup_message
def hello_world():
    return 'Hello, World!' 

app.run()
按以下方式运行应用程序:

python  main.py 
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

并尝试向/earth和/world发出请求,包括和不包括
消息\u read

检查答案并接受或评论