如果我从带有peewee的数据库中获取多条记录,则可以将它们转换为这样的dict:
# app/views.py
from .forms import SignUp
from .models import User
@app.route('/signup', methods=["GET", "POST"])
def signup():
form = SignUp() # HERE
if form.validate_on_submit():
...
但是,通常我只想要一条记录(或者知道只返回一条记录),所以我可以这样做:
users = User.select().where(User.attribute == some_value).dicts()
但是我无法在该对象返回的对象上调用one_user = User.get(User.name == some_value)
。
有没有办法以字典形式获取该get查询的结果?
目前,我唯一能想到的就是非Python性
.dicts()
答案 0 :(得分:0)
peewee
具有扩展功能model_to_dict
,在playhouse
中定义。从示例中:
>>> from playhouse import model_to_dict
>>> user = User.create(username='charlie')
>>> model_to_dict(user)
{'id': 1, 'username': 'charlie'}
答案 1 :(得分:0)
您可以使用“ .get()”:
one_user = User.select().where(User.name == some_value).dicts().get()
尽管您还可以添加一个辅助方法:
class User(Model):
@classmethod
def get_as_dict(cls, expr):
query = cls.select().where(expr).dicts()
return query.get()
是python。您可以扩展它。
答案 2 :(得分:-1)
我认为您应该实现链接中定义的 str 方法,然后再执行。
user = User.get(User.name == some_value)
userDict = json.dumps(str(user))
您将获得用户的专长