Python 用于创建表SQL查询的通用函数

Python 用于创建表SQL查询的通用函数,python,sql,sqlite,Python,Sql,Sqlite,我需要一个可以在表中插入值的通用函数。如何使用数量可变的参数来实现这一点 例如: def create_table(self, tb_name, *args): sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users") sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users(*args[0],

我需要一个可以在表中插入值的通用函数。如何使用数量可变的参数来实现这一点

例如:

def create_table(self, tb_name, *args):
        sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users")
        sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users(*args[0], *args[1], ....*args[n])")
  • *args[0]是“名称”*args[1]是“密码”
  • *args[0]是“名称”*args[1]是“密码”*args[2]是“电子邮件”
  • 函数必须以两种方式工作


    提前谢谢。

    考虑使用
    join
    将列表中的所有项目连接到一条语句中。下面假定所有参数的
    TEXT
    类型:


    考虑使用
    join
    将列表中的所有项连接到一条语句中。下面假定所有参数的
    TEXT
    类型:


    除非SQLite默认为text,否则SQL中的
    CREATE
    DDL命令需要具有命名列的数据类型。如何将数据类型列表传递到函数中?为什么不使用现成的解决方案,如SQLAlchemy或PonyORM?它们将所有这些都整理好了,并且具有很好的声明性。如果您是以标记的方式在Python中执行此操作,为什么不创建字符串
    “创建表用户(*args[0]、*args[1]、…*args[n])”
    动态地使用字符串连接和
    %
    操作符?除非SQLite默认为文本,SQL中的
    CREATE
    DDL命令需要具有命名列的数据类型。如何将数据类型列表传递到函数中?为什么不使用现成的解决方案,如SQLAlchemy或PonyORM?它们将所有这些都整理好了,并且是很好的声明性的。如果您是以标记的方式在Python中执行此操作,为什么不创建字符串
    “创建表用户(*args[0]、*args[1]、..*args[n])”
    动态地使用字符串连接和
    %
    操作符?
    def create_table(self, tb_name, *args):
        vars = " TEXT,".join(*args) + " TEXT"
    
        sqlite3.connect(self.db_name).cursor().execute("DROP TABLE IF EXISTS users")
        sqlite3.connect(self.db_name).cursor().execute("CREATE TABLE users ({})".format(vars))
    
    # CREATE TABLE users (name TEXT, password TEXT)
    # CREATE TABLE users (name TEXT, password TEXT, email TEXT)