Flask SQLAlchemy - 从网页编辑和更新行

时间:2016-12-27 16:45:36

标签: python-2.7 flask-sqlalchemy

我使用flask-sqlalchemy创建了一个包含多行和多列的db表。我的要求是我需要定期更新网页行中几列的数据。是否可以使用flask sqlalchemy从网页编辑和更新表格中的行?有些人可以分享一个例子,这样我就可以更好地理解。

1 个答案:

答案 0 :(得分: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>

然后你有一个view函数,它通过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'))

您显然希望添加验证,例如确保名称不为空,或者其他任何数据检查都适合您的用例。