在Django/Flask后端开发中,我们经常性要对model进行添加或修改操作,前端提交过来的数据是一个字典,有些情况下,前端提交过来的某些数据并不一定是model的属性字段,所以,我们要把不是model中的字段去掉。 通常有两种方法,最简便的方便就是对前端发送过来的 data 进行pop操作,下面再介绍另外一种方法:
添加或修改Model时对数据进行检测,把不在model中的属性字段过滤掉
# for django
def model_check(model, data):
return dict([(k, data[k]) for k in data.keys() if k in [x.name for x in model._meta.fields]])
# for flask (SQLAlchemy orm )
def model_check(model, data):
return dict([(k, data[k]) for k in data.keys() if k in [x.name for x in model.__table__.columns]])