2016-12-27 3 views
0

flask-sqlalchemyを使用して複数の行と列を持つdbテーブルを作成しました。私の要件は、私は定期的に行のいくつかの列のデータをWebページから定期的に更新する必要があります。フラスコのsqlalchemyを使用してWebページからテーブルの行を編集および更新することは可能ですか?私はより良い理解を得ることができるように、いくつかの例を共有することができます。フラスコSQLAlchemy - ウェブページの行を編集して更新する

答えて

0

だから、あなたは次のように定義されたモデルがあります:

class Row(db.Model) 
    __tablename__ = 'YourTableName' 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(255)) 

をあなたの特定のユースケースのニーズを満たすために、適切なHTMLフォームを構築する必要があると思います(これはフォームなしで達成することができるが、これは)最も単純な例である:

<form method="POST" action="{{ url_for('update_row') }}"> 
    <input type="hidden" name="id" value="1"> 
    <input type="text" name="name" placeholder="Enter new name"> 
</form> 

は次に、特定の行を更新するために、POST要求を介して、このフォームの入力を受信して​​表示する機能を有している:

@app.route('/update_row/', methods=['GET', 'POST']) 
def update_row(): 
    if request.method == 'POST': 
     # query.get() method gets a Row by the primary_key 
     record = Row.query.get(request.form.get('id', type=int)) 
     # change the values you want to update 
     record.name = request.form.get('name') 
     # commit changes 
     db.session.commit() 
    # redirect back to your main view 
    return redirect(url_for('main')) 

あなたは、名前が空でないか、またはユースケースに適した他のデータチェックがあるかどうかを確認するなどの検証を追加する必要があります。

+0

テーブルに複数の行があるので、value = "1"を取る代わりに、htmlリクエストフォームから値を取得する方法を教えてください。 – Premchand

関連する問題