使用 Flask/Python 重定向到 URL 时缺少参数
Missing Argument When Redirecting to URL with Flask/Python
我在将参数从表单传递到 Flask 路由时遇到问题。我是 Flask 的新手,所以如果这很简单,我深表歉意。我整个早上都在重新做和重新编码,但无济于事。我正在尝试 return 一个 HTML 页面,其中包含来自表单的用户输入值。我已经用表单(硬币)的一个字段成功完成了它,但是当我以完全相同的方式添加第二个变量时,我不断收到“缺少 1 个必需的位置参数”错误。
下面的 Flask 代码
@app.route('/addcoin/', methods=['POST', 'GET'])
def addcoin():
if request.method == "POST":
coin = request.form['Symbol']
high_price = request.form['High Price']
api = request.form['API']
channel = request.form['Channel']
# return f"<h1>{coin}{high_price}{api}{channel}</h1>"
print('High Price is ' + high_price)
print(coin)
print(type(high_price))
limit = float(high_price)
print(limit)
return redirect(url_for('coin_added', coin_added=coin, limit=limit))
else:
return render_template('addcoin.html')
@app.route('/new-coin/<coin_added>')
def coin_added(coin_added, limit):
return render_template('new_coin.html', coin=coin_added, high_price=limit)
我正在尝试渲染下面的 HTML 模板:
{% extends "index.html" %}
{% block content %}
<h1>{{ coin }} has bee added!</h1>
<h1>{{ high_price }} is the cutoff price!</h1>
{% endblock %}
仅在“/new-coin/”路由的 coin_added() 函数中使用“coin”参数时,我没有遇到任何问题。但是当我尝试添加限制和高价变量时,它坚持认为缺少参数。我什至打印出“限制”变量到控制台以查看它是否存在并且它在重定向行之前成功打印出来。我不确定为什么这没有作为限制传递给 coin_added 路由。
如果我从 coin_added 函数中删除“limit”参数,一切正常。我很困惑为什么它说缺少“限制”参数,当它在上面传递时。
错误信息
TypeError: coin_added() missing 1 required positional argument: 'limit'
我认为您的路线缺少限制变量。应该是这样的
@app.route('/new-coin/<coin_added>/<limit>')
有关如何拥有多个参数的更多信息here。
我在将参数从表单传递到 Flask 路由时遇到问题。我是 Flask 的新手,所以如果这很简单,我深表歉意。我整个早上都在重新做和重新编码,但无济于事。我正在尝试 return 一个 HTML 页面,其中包含来自表单的用户输入值。我已经用表单(硬币)的一个字段成功完成了它,但是当我以完全相同的方式添加第二个变量时,我不断收到“缺少 1 个必需的位置参数”错误。
下面的 Flask 代码
@app.route('/addcoin/', methods=['POST', 'GET'])
def addcoin():
if request.method == "POST":
coin = request.form['Symbol']
high_price = request.form['High Price']
api = request.form['API']
channel = request.form['Channel']
# return f"<h1>{coin}{high_price}{api}{channel}</h1>"
print('High Price is ' + high_price)
print(coin)
print(type(high_price))
limit = float(high_price)
print(limit)
return redirect(url_for('coin_added', coin_added=coin, limit=limit))
else:
return render_template('addcoin.html')
@app.route('/new-coin/<coin_added>')
def coin_added(coin_added, limit):
return render_template('new_coin.html', coin=coin_added, high_price=limit)
我正在尝试渲染下面的 HTML 模板:
{% extends "index.html" %}
{% block content %}
<h1>{{ coin }} has bee added!</h1>
<h1>{{ high_price }} is the cutoff price!</h1>
{% endblock %}
仅在“/new-coin/
如果我从 coin_added 函数中删除“limit”参数,一切正常。我很困惑为什么它说缺少“限制”参数,当它在上面传递时。
错误信息
TypeError: coin_added() missing 1 required positional argument: 'limit'
我认为您的路线缺少限制变量。应该是这样的
@app.route('/new-coin/<coin_added>/<limit>')
有关如何拥有多个参数的更多信息here。