2017-04-11 7 views
1

Flask関数のGET部分で、私は非常に単純なコードをPython 3で書いています。渡すべきデータは表示されません私のHTMLレンダリングで。Python Flask Jinja SQL:テンプレートに渡される値がありません

@app.route("/sellselected", methods=["GET", "POST"]) 
@login_required 
def sellselected(order_num): 
    if request.method == "POST": 
     #not done, just have a redirect to index 
    else: 
     stock_to_sell = db.execute("SELECT * FROM purchases WHERE order_num = :order_num", order_num=order_num) 
     #stock_to_sell = ['fish'] 

    return render_template("sellselected.html", stock_to_sell=stock_to_sell, order_num=order_num) 

SQL文は何も渡されていないようですが、HTMLレンダリングでは空白です。しかし、テストとして私はまた '魚'を使用し、それも空/空ではありません。だから、ページのボディは注文番号を持っていますが、stock_to_sellは常に空です

{% block main %} 
<list> 
    <ul>{{ stock_to_sell }}</ul> 
    <ul>{{ order_num }}</ul> 
</list> 
{% endblock %} 

神社は次のようになります。

+0

。それはあなたの意図ですか? '' fish ''だけを渡すとどうなりますか? – bernie

+0

はい、ジンジャーはforとlistでより複雑になりましたが、私はストック_ソウルをレンダリングするまで単純化しました。 「魚」も働かない。 –

答えて

0

あなたの問題はもうジンジャとは関係ありません。あなたのルートは間違っています:@app.route("/sellselected/<order_num>", methods=["GET", "POST"])

sellselected関数にorder_numを渡すので、ルート上で宣言する必要があります。

+0

それは動作しませんでした。私はすべてをギターに乗せる。たぶん私は情報のいくつかの重要な部分を残しています。 https://github.com/jamesdylangoldstein/finance –

0

あなたはGET権限としてparam order_numを渡すといいですか?コードはPOSTがインデックスにリダイレクトすると言うので。

したがって、パラメータをGETとして渡します。あなたが取得する必要があり、それ最初

current_order = request.args.get( '列order_num')

あなたのコードは次のようになります。あなたは、リストを渡している

@app.route("/sellselected", methods=["GET", "POST"]) 
@login_required 
def sellselected(order_num): 
    if request.method == "POST": 
     # not done, just have a redirect to index 
    else: 
     order_num = request.args.get('order_num') 
     stock_to_sell = db.execute("SELECT * FROM purchases WHERE order_num = :order_num", order_num=order_num) 

return render_template("sellselected.html", stock_to_sell=stock_to_sell, order_num=order_num) 
関連する問題