使用Django为SQLite生成SQL Insert语句

时间:2013-04-17 18:20:30

标签: django sqlite escaping mysql-python

我想用Django生成一个完整的SQL文件,可以下载并执行它来创建一个SQLite DB。

问题是转义字符串以将其插入要下载的文件中。这是我到目前为止所得到的:

name = MySQLdb.escape_string(self.name.encode("utf-8")).decode("utf-8")
return "INSERT INTO names VALUES(%d,'%s');" % (self.id, name)

但不幸的是,MySQL使用反斜杠来逃避单引号,这是SQlite不喜欢的。我更喜欢使用Django中包含的东西来替换MySQLdb.escape_string()。我不确定MySQL-escaping和SQLite之间是否存在任何其他不兼容问题,因此最好完全避免使用MySQLdb.escape_string()。

作为最后的追索权,我会在回来之前这样做:

name = name.replace("\\\'","\'\'")

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

SQLite具有quote功能。 当sqlite3整个数据库时,.dump命令行工具也会使用它。