2017-04-22 9 views
0

私はFlaskとMySQLを使用して、データベースに基づいてテーブルを作成しています。ユーザーが特定の行をクリックすると、別のページにリダイレクトする必要があります。このページには、その特定の行についての詳細が表示されます。リダイレクト時にテーブル行の詳細を取得する方法

私はリダイレクト部分を削除しましたが、バックエンドでその行に関する情報を取得するにはどうすればよいですか?フラスコ側で

<tbody> 
    {% for row in resultPois %} 
    <tr onclick="window.document.location='/pageDetail';"> 
     <td>{{ row[0] }}</td> 
     <td>{{ row[1] }}</td> 
     <td>{{ row[2] }}</td> 
     <td>{{ row[3] }}</td> 
     <td>{{ row[4] }}</td> 
     <td>{{ row[5] }}</td> 
    </tr> 
    {% endfor %} 
</tbody> 

:あなたはバックエンドにテンプレートから変数を渡したいとき

@app.route('/pageDetail') 
def page_detail(): 
    # get info here to render page! 
    return render_template('page_detail.html') 

答えて

1

あなたがflask.url_for(endpoint, **values)を試すことができます

は、ここに私のHTMLコードです。

<tbody> 
    {% for row in resultPois %} 
    <tr onclick="window.location.href='{{ url_for('page_detail', rowData=row) }}';"> 
     <td>{{ row[0] }}</td> 
     <td>{{ row[1] }}</td> 
     <td>{{ row[2] }}</td> 
     <td>{{ row[3] }}</td> 
     <td>{{ row[4] }}</td> 
     <td>{{ row[5] }}</td> 
    </tr> 
    {% endfor %} 
</tbody> 

フラスコビューで:ところで

@app.route('/pageDetail/<rowData>') 
def page_detail(rowData): 
    # you can use the the rowData from template 
    return render_template('page_detail.html' 

、私はより良いテーブルの行に1列、とボタンを作成し、フロントエンド部分を設計することをお勧め何フラスコテンプレートで

ボタンをクリックしてから、onclick関数をトリガーしてurl_forを呼び出すと、よりユーザーフレンドリーになります。

関連する問題