Flask:从一页到另一页的隐藏值

Flask: Hidden values from one page to another

我已经阅读了其他问题,但仍然无法弄清楚问题出在哪里。 我想从一个页面传递一个隐藏值:dashboard 到另一个:seegoodsrec 希望有人能提供帮助。 我正在使用此表单获取隐藏值:

class customerIDForm(Form):
    customerID = HiddenField()

然后在我的仪表板中使用:

@app.route('/dashboard/', methods=['GET', 'POST'])
@login_required
def dashboard():
    form = customerIDForm()
    customerID = form.customerID.data 
    return render_template("dashboard.html",form = form)

我觉得到这里还好。但是我无法弄清楚 html 代码。在 table 内,我希望按钮能够提交到我的页面 seegoodsrec:

{% for t in TOPIC_DICT["goodsrec"] %}
<td>
<form method=post action="/seegoodsrec/">
<input type="hidden" name="customerID" value="{{j[0]}}"
    <a href="{{t[3]}}"><button type="submit" value=Save class="btn btn-primary"style=
" margin-top: 5px; margin-bottom: 5px; height:44px; margin-right: 15px">
 <span class="glyphicon glyphicon-search"></span> {{t[2]}}</button></a>
</form>
</td>
{% endfor %}

j[0]是一个变量,取决于您点击的table内的行,按钮应该将值提交到页面seegoodsrecseegoodsrec 是这样设置的:

@app.route('/seegoodsrec/', methods=['GET', 'POST'])
@login_required
def seegoodsrec():
    form = customerIDForm()
    customerID = request.form.get('customerID')
    return render_template("seegoodsrec.html",form = form)

页面 seegoodsrec 不显示来自 j[0] 的值 customerID。非常感谢任何输入,谢谢!我只是在尝试 seegoodsrec:

<p>test{{customerID}}</p>

编辑

抱歉,这么痛苦,但我就是想不出正确的方法。也许我页面上的截图有帮助: Screenshot from my page

基本上,我需要做的是:当我单击 View Details 时,我只想查看我单击的行中客户的详细信息(取决于 ID)。查看详细信息会将我带到一个名为 seegoodsrec 的新页面。因此,我的想法是将隐藏值传递给页面 seegoodsrec,即客户 ID。然后我可以使用这个值来只为该客户显示良好的接收者。

非常感谢您的帮助。

你这里做错了。

@app.route('/dashboard/', methods=['GET', 'POST'])
@login_required
def dashboard():
    form = customerIDForm()
    customerID = form.customerID.data
    ^ ~~~~~~~~
     This doesn't do anything. Consider doing it reverse?
    return render_template("dashboard.html",form = form)

此外,GET 和 POST 是不同的。请限制为一个,或编写单独的处理程序。

如果这对任何人有帮助。以下是我的选择方式:

<form method=post action="/seegoodsrec/">                    
<a href="{{t[3]}}"><button type="submit" name="customerID"
value="{{j[0]|int}}" class="btn btn-primary" style=" margin-top: 5px;
margin-bottom: 5px; height:44px; margin-right: 15px">
<span class="glyphicon glyphicon-search"></span> {{t[2]}}
</button>
</a>
</form>

烧瓶中:

def seegoodsrec():
customerID = request.form.get('customerID')
mySQL3 = SelectGoodsrec(session['ID']) #displayed goodsreceiver with user ID
mySQL8 = SelectGoodsrecSEE(customerID)
c, conn = connection()

x = c.execute("SELECT * FROM goodsrec WHERE Gr_Cm_id = (%s)",
                      [str(customerID)])
if int(x) < 1:
    flash("Please, create a goods receiver for this customer")

mySQL8 获取 customerID 并选择相应的收货人。