Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python在数据库中发送字典中的数据_Python_Sql_Wxpython_Sqlalchemy - Fatal编程技术网

使用python在数据库中发送字典中的数据

使用python在数据库中发送字典中的数据,python,sql,wxpython,sqlalchemy,Python,Sql,Wxpython,Sqlalchemy,我有一个应用程序,我正在使用wxpython和postgresql作为我的数据库构建。我不知道从GUI向数据库发送数据的正确方法是什么,但我正在做的是将GUI(TXTCRL)输出存储在字典中,并尝试将其发送到postgresql。我的问题是:是否有任何方法可以使用sqlalchemy将数据发送到数据库,其中dictionary键作为列字段,dictionary值作为其值。GUI和数据库之间的数据通信是否有更优雅的方式?假设您在sqlalchemy中使用了声明词,并且您的对象名为object,您可

我有一个应用程序,我正在使用wxpython和postgresql作为我的数据库构建。我不知道从GUI向数据库发送数据的正确方法是什么,但我正在做的是将GUI(TXTCRL)输出存储在字典中,并尝试将其发送到postgresql。我的问题是:是否有任何方法可以使用sqlalchemy将数据发送到数据库,其中dictionary键作为列字段,dictionary值作为其值。GUI和数据库之间的数据通信是否有更优雅的方式?

假设您在sqlalchemy中使用了
声明词
,并且您的对象名为object,您可以使用:

# I suppose you already have your session somehow...
# If you want to add it to the database
# Assuming you did not change the __init__ method
obj = Object(**data_dictionary_with_keys_matching_column_names)
session.add(obj)

# If you want to issue an update
# obj is already there somehow...
for k, v in data_dictionary_with_keys_matching_column_names.iterkeys():
    setattr(obj, k, v)

session.commit()
只有在使用ORM和声明式时,才可以这样做。(您提到了sqlalchemy,所以我猜如果是postgresql或其他SQL,它不会改变)


编辑:我认为您选择了正确的方法,只需确保在表单中使用
wx.Validator
s,并将数据存储在字典中,这非常实用。

似乎与此类似,我在下面的文章中做了类似的事情:。它可能会帮助你找到一种自己的方法。@MikeDriscoll:我是你的教程的粉丝,经常学习。