在我的 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 所做的事情, 除了它不做任何类型转换,这个边距太窄而无法包含。
