你的User和Role是两个不同的class啊,所以返回不同的
如果是输出的话,query.all()调用的是__repr__这个方法,你检查下User是否定义了__repr__这个方法,可以看下你的Role是怎么定义这个方法的
以我的项目为例——基于 flask 的 CRUD 操作
其中 models.py
里的定义如下(源码地址:https://github.com/eastossifrage/flask-wtf-crud/blob/basic/app/models.py:
class User(db.Model):
'''Example for crud
以用户为例,来展示 CRUD 操作!
'''
__tablename__ = 'crud'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, index=True)
email = db.Column(db.String(64), unique=True, index=True)
status = db.Column(db.Boolean, default=False)
role = db.Column(db.Boolean, default=False)
def __repr__(self):
return '<User %r>' % self.username
根据你的例子,你的 User
和 Role
两个类中,前者没有定义 __repr__(self)
,而后者定义了 __repr__(self)
类,所以造成你的显示结果出现了不同的情况。
再者,建议看看资料,定义类的时候,注意一下 __repr__(self)
和 __str__(self)
两个属性。
简单的说__repr__(self)
是面向程序员的,而__str__(self)
是面向用户的。
最后,送你个福利http://blog.csdn.net/luckytanggu/article/details/53649156
返回的是包装后的对象