如何编写一个方法来在python中创建sqlite表
问题描述:
我想写一个类来创建一个sqlite表,因为我必须为这个任务创建相当多的表。如何编写一个方法来在python中创建sqlite表
这是我试图接近:
def connect_database(database_name):
table_connect = lite.connect(database_name)
print "connected successfully"
return table_connect
def create_table(name_of_table, *argument_name, *argument_type):
# create_user = user_table.cursor()
# create_user.execute("Drop table if EXISTS user_table")
# create_user.execute('create table user_table(user_id INT, user_name VARCHAR)')
# create_user.close()
table_create = name_of_table.cursor()
table_create.execute("drop table if exists name_of_table")
table_create.execute('''
create table name_of_table(
argument_name argument_type
argument_name name_of_table
)
''')
print "create table successfully"
table_create.close()
example = connect_database('example.db')
create_table(example, water, FLOAT)
我是不是能够传递多个argument_names,或方法传递argument_type的问题。
此外,该程序返回未解决的水和FLOAT的参考。
有没有方法可以完成该方法?
感谢
答
真的你或许应该考虑使用像SQLAlchemy的ORM的...编写自己的数据库抽象的基础上,你目前的技能水平可能是一个灾难,但是如果你真的必须尝试类似这
def create_table_string(table_name,*fields):
return "CREATE TABLE {table_name} ({fields})".format(table_name=table_name,
fields=",".join(fields))
def create_table(cursor,name_of_table, *fields):
sql = create_table_string(table_name,*fields)
print "SQL:",sql
cursor.executescript(sql)
db = sqlite3.connect(my_database)
create_table(db.cursor(),"a_table","Field1 INT","Field2 String","Field3 PRIMARY KEY INTEGER")
提示:正确格式的代码[编辑]你的问题并选择其 –
和你的未解决的引用错误并不意味着赞同你所示的代码后,任何使用'{}'按钮。你可以阅读关于[mcve]的更多信息 –
你想写一个执行SQL命令的方法吗?你会传递多个参数给方法,但你不能?你会怎样做? –