Python SQL来处理“中的表更新”;“动态类型”;时尚
我正在使用Python3的Python SQL来处理“中的表更新”;“动态类型”;时尚,python,sql,sqlite,python-3.x,Python,Sql,Sqlite,Python 3.x,我正在使用Python3的sqlite3模块,并在此过程中熟悉SQL 我已经编写了一个玩具程序来散列一个salt密码,并将其、相关用户名和salt存储到数据库中。我认为创建签名功能是很直观的: def store(table, data, database=':memory:') 例如,store('logins',{'username':'bob','salt':'foo','salted_hash':'bar'})可调用为,并且能够单独添加到logins,添加到新的行中,username的
sqlite3
模块,并在此过程中熟悉SQL
我已经编写了一个玩具程序来散列一个salt密码,并将其、相关用户名和salt存储到数据库中。我认为创建签名功能是很直观的:
def store(table, data, database=':memory:')
例如,store('logins',{'username':'bob','salt':'foo','salted_hash':'bar'})可调用为
,并且能够单独添加到logins
,添加到新的行中,username
的值bob
,salt
的值foo
,等等
不幸的是,我被编写什么样的SQL所困扰。我试图以一种“动态类型”的方式来实现这一点,例如,我不会因为存储了错误的类型而受到惩罚,或者能够随意添加新的列
我希望函数能够对所有输入进行消毒:
- 检查该表是否存在,如果不存在,则创建该表,并将字典中传递的键作为列李>
- 如果表已经存在,请检查表是否具有指定的列(传递的字典的键),如果没有,则添加它们(SQL是否可能这样做?)李>
- 将my dictionary中的各个值添加到dictionary中相应的列中
INSERT
,但它似乎非常严格。例如,如果列不存在,会发生什么?那么我们如何才能添加它们呢
我不介意代码是根据Python3的sqlite3
定制的,还是仅仅将SQL作为大纲;只要我能在一定程度上使用它(并从中学习),我非常感激
(另一方面,我想知道我还可以使用哪些方法来代替SQL关系数据库;我以前使用过Amazon的SimpleDB,并考虑过使用它,因为它是非常“动态类型化”的,但我想知道我必须为此使用什么SQL代码。)
如果不存在,则创建表格…
请参阅sqlite\u master
查看表中是否已经存在您需要的列。您需要解析sql
列,但由于它正是您的程序创建表所提供的,因此您应该知道语法altertable?添加列…
请参见您是否考虑过使用成熟的ORM?SQLAlchemy()是非常时髦的rdbms,如果您想要一个完全无模式/动态的体验,sqlite不是正确的选择。