gpt4 book ai didi

Python peewee 更新关键字作为变量

转载 作者:行者123 更新时间:2023-11-29 06:37:42 27 4
gpt4 key购买 nike

在使用 peewee + MySQL 数据库的 Python 中,是否可以在更新函数中使用一些变量作为关键字?

例如:

what = raw_input('What you want to change? name, surname, email ')
value = raw_input('What is the value?')

update = Users.update(what=value).where(Users.id == some_user_id)
update.execute()

如果我们有这样的表:

class Users(BaseModel):
email = CharField(max_length=50, null=True)
name = CharField(max_length=50, null=True)
surname = CharField(max_length=50, null=True)

class Meta:
db_table = 'users'

最佳答案

是的,你可以传递一个未打包的 dictionary作为关键字参数,像这样:

update = Users.update(**{what: value}).where(Users.id == some_user_id)

工作原理示例:

>>>def foo(a=2):
... print a
...
>>>foo(**{'a': 3})
3
>>>b = 'a'
>>>foo(**{b: 4})
4
>>>foo(**{'c': 5})
TypeError: f() got an unexpected keyword argument 'c'
>>>foo({'a': 6})
{'a': 6}

Related question

关于Python peewee 更新关键字作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455057/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com