使用 Flask 在视图中返回多个值 (Python)
Returning multiple values in a view using Flask (Python)
我什至很难从广泛的角度在脑海中理解这一点,但我会尽力解释,如果有任何不清楚的地方,请发表评论以获取更多信息。
现在我有一个 python 函数,它从我工作场所的内部 API 中获取用户名和他们的用户 ID,该 ID 与每个工作人员的用户名相关联,然后将其路由到带有 table 的网页。 (我使用用户名作为检索数据的主要方式,我想它可以被认为是主键?)
@app.route('/user/<username>')
def issue(username)
json = get_json(username)
_user = get_username(json)
_id = get_id(json)
print "User: " + _user
print "ID: " + _id
(get_username()
和 get_id()
函数解析 JSON 文件并检索我需要的数据)
用户到达此页面的方式是在 webapp 的主页上有一个文本字段,他们输入用户名,然后将他们重定向到页面 127.0.0.1:5000/user/username ,它又调用上面的那个函数。
这给出了一个非常简单的网页,其中只有用户名和 ID。但是,如何通过一个请求呈现多个名称和 ID。
例如:
1. User goes to home page
2. User enters "John Doe, Harry Smith, Alex Boggs" into the text box and hit submit
3. They are then presented with this information
User: John Doe
ID: 127
User: Harry Smith
ID: 412
User: Alex Boggs
ID: 322
我什至不确定从哪里开始做这件事,因为我真的只知道如何一次传递一个论点。
注意:理想情况下,数据实际上不会绑定到 URL,而是只会在主页的搜索框下方生成,但我会接受任何解决方案。
如果用户在文本框中输入 John Doe, Harry Smith, Alex Boggs
那么你应该在 Flask 中得到 John Doe, Harry Smith, Alex Boggs
并且你必须将它拆分 "John Doe, Harry Smith, Alex Boggs".split(", ")
以获得名称列表。
现在您可以使用 for
循环来打印用户,每个名称的 ID。
像这样使用 "path" 转换器 @app.route('/something/<path:name_list>')
所以当用户请求 URL 时:site/something/name1/name2/name3
你会得到一份名单
或者您可以通过创建一个转换器来创建您自己的转换器class。
from werkzeug.routing import BaseConverter
class ListConverter(BaseConverter):
def to_python(self, data):
return data.split(',')
def to_url(self, data)
','.join([BaseConverter.to_url(each) for each in data])
然后像这样将此转换器添加到应用程序转换器字典中:
app.url_map.converters['list']=ListConverter
现在您可以使用您的列表转换器来实现该功能:
app.route('/something/<list:name_list>')
并且用户可以请求 URL 如:site/something/name1,name2,name3
我什至很难从广泛的角度在脑海中理解这一点,但我会尽力解释,如果有任何不清楚的地方,请发表评论以获取更多信息。
现在我有一个 python 函数,它从我工作场所的内部 API 中获取用户名和他们的用户 ID,该 ID 与每个工作人员的用户名相关联,然后将其路由到带有 table 的网页。 (我使用用户名作为检索数据的主要方式,我想它可以被认为是主键?)
@app.route('/user/<username>')
def issue(username)
json = get_json(username)
_user = get_username(json)
_id = get_id(json)
print "User: " + _user
print "ID: " + _id
(get_username()
和 get_id()
函数解析 JSON 文件并检索我需要的数据)
用户到达此页面的方式是在 webapp 的主页上有一个文本字段,他们输入用户名,然后将他们重定向到页面 127.0.0.1:5000/user/username ,它又调用上面的那个函数。
这给出了一个非常简单的网页,其中只有用户名和 ID。但是,如何通过一个请求呈现多个名称和 ID。
例如:
1. User goes to home page
2. User enters "John Doe, Harry Smith, Alex Boggs" into the text box and hit submit
3. They are then presented with this information
User: John Doe
ID: 127
User: Harry Smith
ID: 412
User: Alex Boggs
ID: 322
我什至不确定从哪里开始做这件事,因为我真的只知道如何一次传递一个论点。
注意:理想情况下,数据实际上不会绑定到 URL,而是只会在主页的搜索框下方生成,但我会接受任何解决方案。
如果用户在文本框中输入 John Doe, Harry Smith, Alex Boggs
那么你应该在 Flask 中得到 John Doe, Harry Smith, Alex Boggs
并且你必须将它拆分 "John Doe, Harry Smith, Alex Boggs".split(", ")
以获得名称列表。
现在您可以使用 for
循环来打印用户,每个名称的 ID。
像这样使用 "path" 转换器 @app.route('/something/<path:name_list>')
所以当用户请求 URL 时:site/something/name1/name2/name3
你会得到一份名单
或者您可以通过创建一个转换器来创建您自己的转换器class。
from werkzeug.routing import BaseConverter
class ListConverter(BaseConverter):
def to_python(self, data):
return data.split(',')
def to_url(self, data)
','.join([BaseConverter.to_url(each) for each in data])
然后像这样将此转换器添加到应用程序转换器字典中:
app.url_map.converters['list']=ListConverter
现在您可以使用您的列表转换器来实现该功能:
app.route('/something/<list:name_list>')
并且用户可以请求 URL 如:site/something/name1,name2,name3