python - 在烧瓶中的路线之间传递参数
问题描述
我正在创建一个基于 Flask 的 Web 应用程序。在我的主页上,我从用户那里获取某些输入,并在其他路由中使用它们来执行某些操作。我目前正在使用global
,但我知道这不是一个好方法。我在 Flask 中寻找,Sessions
但我的网络应用程序没有注册用户,所以我不知道在这种情况下会话将如何工作。简而言之:
- Webapp 不需要用户注册
- 用户选择通过
lists
表单传递三个参数。 - 这三个列表,浮点列表,字符串列表和整数列表,必须传递给其他路由以处理信息。
有什么巧妙的方法吗?
解决方案
您可以通过 url 参数从主页传递用户输入。即,您可以将用户输入的所有参数作为参数附加到接收器 url 中,并在接收器 url 端检索它们。请在下面找到相同的示例流程:
from flask import Flask, request, redirect
@app.route("/homepage", methods=['GET', 'POST'])
def index():
##The following will be the parameters to embed to redirect url.
##I have hardcoded the user inputs for now. You can change this
##to your desired user input variables.
userinput1 = 'Hi'
userinput2 = 'Hello'
redirect_url = '/you_were_redirected' + '?' + 'USERINPUT1=' + userinput1 + '&USERINPUT2=' + userinput2
##The above statement would yield the following value in redirect_url:
##redirect_url = '/you_were_redirected?USERINPUT1=Hi&USERINPUT2=Hello'
return redirect(redirect_url)
@app.route("/you_were_redirected", methods=['GET', 'POST'])
def redirected():
##Now, userinput1 and userinput2 can be accessed here using the below statements in the redirected url
userinput1 = request.args.get('USERINPUT1', None)
userinput2 = request.args.get('USERINPUT2', None)
return userinput1, userinput2
推荐阅读
- javascript - 如何在按钮单击时从数组javascript调用函数
- javascript - 日志 = 新日志(“调试”);
- unity3d - 孩子们在 Unity 中以父母为中心“自动居中”
- javascript - 有没有办法使用javascript在客户端对视频文件(.mkv)进行一些操作?
- mysql - closeCells() 查询说明
- javascript - “i”变量在控制台中未定义
- ruby-on-rails - Rails + Sidekiq: Sidekiq.options[:concurrency] returns 10 instead of 3, which is the value in my config/sidekiq.yml file
- jquery - 前端 jQuery 代码无法使用 Node.js 正确执行
- ssl - OpenSSL SSL_connect:SSL_ERROR_SYSCALL 连接到 api.telegram.org:443
- bash - 使用 curl 从远程服务器下载最新文件