首页 > 解决方案 > 带有参数的烧瓶重定向(url_for)

问题描述

我是使用 Flask 构建 Web 应用程序的新手,并且在使用时遇到问题redirect(url_for)

from flask import Flask, render_template, request, redirect, url_for

app = Flask(__name__)

def getSomeList(paramsFromHTML):
    return someList

@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        myData = getSomeList(paramsFromHTML)
        return redirect(url_for("show_data", this_data=myData))
    else:
        # Show the default page for GET requests
        return render_template("welcome.html")

@app.route("/show_data", methods=["GET", "POST"])
def show_data(this_data):
    return render_template("show_data.html", data=this_data)

在我的主索引页面中从 HTML 中获取一些详细信息后,我需要将其路由到show_data视图函数。该函数有一个参数(this_data)。但是,路由本身没有参数 - 就像"/show_data/<string:something>"它只是"/show_data"

尝试此操作时出现以下错误。 TypeError: show_data() missing 1 required positional argument: 'this_data'

在 url 路由中是否也必须有某种参数?我可以为我的用例尝试任何解决方法吗?

标签: pythonpython-3.xflaskredirecturl-for

解决方案


从我的 show_data 函数中删除 args 部分(this_data)并使用以下内容获取值后,我能够得到这个工作 - this_data = request.args.get('data')


推荐阅读