Skip to main content
 首页 » 编程设计

访问 Flask 请求参数的 Pythonic 方式

2025年05月04日25birdshome

在我的 Flask 应用程序中,我设置了一些通过 API 调用传入的局部变量,使用

from flask import request 
. 
. 
submission_id = request.args.get('submission_id') 
grader = request.args.get('grader') 
grading_factor = float(request.args.get('grading_factor')) 
answer_key = request.args.get('answer_key') 
submission_key = request.args.get('submission_key') 

设置这 5 个变量的重复性较低或更符合 Pythonic 的方法是什么?

请您参考如下方法:

正如我在评论中建议的那样,您可以想出一个装饰器,将请求参数映射到相应的函数参数,例如:

def map_args(func): 
    @functools.wraps(func) 
    def wrapper(**kwargs): 
        all_args = dict(request.args, **kwargs) 
        return func(**all_args) 
 
    return wrapper 

然后:

@app.route('/mypath') 
@map_args 
def handler(submission_id, grader, grading_factor, ...): 
    """the remaining logic""" 

这类似于 Flask 对 view_args 所做的事情, 除了它不做任何类型转换,这个边距太窄而无法包含。