使用
- 烧瓶
- 烧瓶-sqlalchemy
- 炼金术
- jQuery
- 数据表(jQuery 插件)
- Jeditable (jquery 插件)
考虑这个用户类(直接来自 flask-sqlalchemy 文档):
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
数据表发出 ajax 请求并填充表。然后每个 td 都可以使用 jeditable 就地编辑。一旦修改了 td,jeditable 就会向 localhost/modify 发出 POST 请求,其中包含:
- 行 id(与用户类相同的 id)
- 新的修改值
- 被更改的表的列(为了论证,我们假设有三列 id/username/email)(int)
现在,我希望在处理 localhost/modify 的函数中获取行 ID,创建一个用户对象并查询该特定行的数据库,查看需要修改哪些属性,使用新值修改它并提交到分贝。这是我到目前为止得到的:
@app.route('/modify', methods=['GET', 'POST'])
def modify()
if request.method == 'POST' :
user = user.query.get(form.row_id)
if form.column_id == int(0):
user.id = form.value
elif form.column_id == int(1):
user.username = form.value
elif form.column_id == int(2):
user.email = form.value
else:
pass
db.session.commit()
return 'ok'
这样,是的,它确实有效,但必须有更漂亮的方法。这个看起来不是很...pythonic
米海