如何编辑从html表中的db获取的数据? Flaja,Jinja2

时间:2018-08-04 16:05:38

标签: python html database flask jinja2

恐怕标题不够清晰,但我会尽力解释得更详细:

我有一个数据库表:

class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    task = db.Column(db.String(10),index=True)
    descr = db.Column(db.String(300),index=True,unique=True)
    docs = db.relationship('Doc', backref='Task', lazy='dynamic'

此查询docs = Task.query.all()

和一些带有循环的html页面:

<table>
{% for doc in docs %}
<tr><td>{{doc.id}}</td><td>{{doc.task}}</td><td>{{doc.descr}}</td><td> 
{% endfor %} 
</table>  

这一切都很好,看起来像普通的html表,其中填充了我的数据库(sqlite)中的数据。像这样,但这不过是另一张桌子。 enter image description here 有时数据缺少值,例如此图片中的最后一列,这很正常,因为我想稍后填充它。如何实现这种功能?我已经尝试了很多事情。问题是我不知道如何从当前编辑的行中获取另一个信息,以将正确的记录记录到数据库中。

例如,让我们进入第二行并将一些数据添加到最后一列->提交。现在,我必须以某种方式从该行“ 234”或“ sfdfs”中获取

edit_ task = Task.query.filter_by(task=234).first() or 
Task.query.filter_by(descr=sfdfs).first() 

获取此查询的结果,只需将新信息添加到未填充的列中,然后提交即可。

我可以做出不同的形式,请求和其他内容,但是我只是不明白如何以适当的方式实现此功能?我应该使用JS从模板中的表中获取信息,而不是将其传输到表单以及python / route函数吗?还是有另一个决定?可能是此html表必须是某种WTFotms table.widget形式吗?任何想法将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

http://www.blog.pythonlibrary.org/2017/12/14/flask-101-adding-editing-and-displaying-data/是我设法找到的唯一方法。只是不要创建带有循环的html-table手动记录,flask_table中的Table类可以为您做到这一点,并且还有进行编辑链接的机会。