我使用webargs来解析来自request.args
的参数,并将它们作为参数传递给烧瓶视图。我的客户机使用逗号分隔的列表来表示一个键的多个值:
/queues/generate?queue_id=4&include_ids=1,2,3
为了解析这个,我使用了棉花糖的DelimitedList
字段。在
但是,如果我用Flask的url_for
生成URL,它会为每个值生成重复的键:
url_for('queues.generate', queue_id=4, include_ids=[1, 2, 3])
/queues/generate?queue_id=4&include_ids=1&include_ids=2&include_ids=3
{cda>只捕获第一个字段的值。更改为List
字段将再次正确捕获值。所以要么我的烧瓶网址失败,要么我的客户网址失败。在
{6}我不能用我的客户机来修改我的url。如何使url_for
生成相同的样式?在
There's no standard for specifying multiple values for a key in a query string.Flask、浏览器和许多其他web技术使用的是您在}中看到的“repeat key”样式。你的客户选择了不同的风格。在
url_for
和{如果希望
url_for
生成分隔样式,则需要预处理传递给url_for
的值。{cd1>改为使用包装器。在请记住,
requests.args
只理解repeat key样式,因此您必须使用webargs或其他方法解析任何传入的逗号分隔值。相反,从客户机生成repeat key样式可能更容易。在相关问题 更多 >
编程相关推荐