python – 使用Flask路径捕获整数列表
发布时间:2020-12-20 12:10:06 所属栏目:Python 来源:网络整理
导读:我正在尝试在Flask中实现一个基本的计算器.我定义了两个url参数,当我只想添加两个值时,这些参数是可管理的.但是,我想添加任意数量的值.如何在不编写无限长路径的情况下获取整数列表? @app.route('/add/int:n1,int:n2')def add(n1,n2): sum = n1+n2 return "
我正在尝试在Flask中实现一个基本的计算器.我定义了两个url参数,当我只想添加两个值时,这些参数是可管理的.但是,我想添加任意数量的值.如何在不编写无限长路径的情况下获取整数列表?
@app.route('/add/<int:n1>,<int:n2>') def add(n1,n2): sum = n1+n2 return "%d" % (sum) 我尝试使用此代码解决我的问题,但它无法正常工作 integer_list = [] @app.route('/add/integer_list') def fun (integer_list): sum = 0 for item in integer_list: sum = sum + item return '%d' % sum 解决方法
创建匹配逗号分隔数字的
custom url converter,将匹配的字符串拆分为整数列表,并将该列表传递给视图函数.
from werkzeug.routing import BaseConverter class IntListConverter(BaseConverter): regex = r'd+(?:,d+)*,?' def to_python(self,value): return [int(x) for x in value.split(',')] def to_url(self,value): return ','.join(str(x) for x in value) 在app.url_map.converters上注册转换器. app = Flask(__name__) app.url_map.converters['int_list'] = IntListConverter 在路线中使用转换器.值将是一个整数列表. @app.route('/add/<int_list:values>') def add(values): return str(sum(values)) /add/1,2,3 -> values=[1,3] /add/1,z -> 404 error url_for('add',values=[1,3]) -> /add/1,3 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |