gpt4 book ai didi

python - URL Builder TypeError error() 仅接受 1 个参数(给定 0 个)

转载 作者:太空宇宙 更新时间:2023-11-03 20:52:34 24 4
gpt4 key购买 nike

抱歉,如果这是重复的,我一直在努力理解这是如何导致错误的,因为它看起来与所有其他正确的错误相同。

我想使用 Flask 将变量传递到 url_for 中,但我不断收到 TypeError

@app.route('/membership/register/', methods=["GET", "POST"])
def register():
if request.method == "GET":
return render_template("NewForm.html", error=False)
elif request.method == "POST":
checker = datetime.utcnow()
if (checker.minute % 2) == 0:
error = False
error_type = "username"
else:
error = False
error_type = "terms"
if error == False:
message = 'success'
elif error == True:
message = 'error'
else:
message = 'arbitrageerror'
print error_type, message
return redirect(url_for(message , error_msg = error_type ))
else:
return redirect(url_for('arbitrageerror'))


@app.route('/register/success', methods=["GET"])
def success():
if request.method == "GET":
return render_template("register_sucess.html", error=True)

@app.route('/register/arbitrageerror', methods=["GET"])
def error404():
if request.method == "GET":
return render_template("error404.html")

@app.route('/register/error', methods=["GET"], error_msg = error_type)
def error(error_msg):
if error_msg == "username":
if request.method == "GET":
return render_template("register_error.html")
if error_msg == "terms":
return "NO Terms"

我不断收到以下错误:

TypeError
TypeError: error() takes exactly 1 argument (0 given)

当我运行它时,我打印了两个变量,但随后我无法获取带有添加变量的url_for来获取该变量。我不确定我是否没有将其正确传递给处理程序。 redirect(url_for((message, error_msg=error_type)) 是我需要帮助的行,然后是 def error(error_msg)

我已经查看了所有文档,看起来我使用了正确的语法。另外,当我运行它时,我得到以下打印输出

Terms error
127.0.0.1 - - [18/May/2019 23:37:52] "POST /register/ HTTP/1.1" 302 -
127.0.0.1 - - [18/May/2019 23:37:52] "GET /register/error?error_msg=Terms HTTP/1.1" 500 -
Traceback (most recent call last):

第一行告诉我我已经正确定义了变量。感谢您的帮助。

最佳答案

根据 Flask 文档,url_for 接受函数名称作为其第一个参数和任意数量的关键字参数,每个参数对应于 URL 规则的可变部分。未知的变量部分作为查询参数附加到 URL。

例如。

@app.route('/')
def index():
return 'index'

@app.route('/login')
def login():
return 'login'

@app.route('/user/<username>')
def profile(username):
return '{}\'s profile'.format(username)

with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('login', next='/'))
print(url_for('profile', username='John Doe'))

网址:

/
/login
/login?next=/
/user/John%20Doe

更多详情

http://flask.pocoo.org/docs/1.0/quickstart/#url-building

关于python - URL Builder TypeError error() 仅接受 1 个参数(给定 0 个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56215093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com