python - 自定义转换器未通过列表
问题描述
我想做的是使用使用 werkzeug.routing 基本转换器制作的自定义转换器,通过内置的烧瓶函数渲染和 url_for 将作为列表的数据发送到另一个函数。
后端.py:
from flask import *
from flaskext.mysql import MySQL
from werkzeug.routing import BaseConverter
mysql = MySQL()
application = Flask(__name__)
class ListConverter(BaseConverter):
def to_python(self, value):
return value.split('+')
def to_url(self, values):
return '+'.join(BaseConverter.to_url(value)
for value in values)
application.url_map.converters['list'] = ListConverter
@application.route('/reportsscr',methods=["POST"])
def reportsscr():
results = [1,2,3,4,5,6,7]
return redirect(url_for('reportsview',value =results))
并在另一个文件
Main.py中调用它
from backend import *
@application.route('/view/<list:value>')
def reportsview(value):
return str(value)
这是我得到的错误快照: 错误
解决方案
我通过谷歌搜索找到了一些如何做到这一点的例子。我认为您可能需要调整您的 to_url 函数。
class ListConverter(BaseConverter):
def to_python(self, value):
return value.split('+')
def to_url(self, value):
#change values to value, get super to_url function
base_to_url = super(ListConverter, self).to_url
return '+'.join(base_to_url(x)
for x in value)