我想用 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 转义和 SQLite 之间是否存在其他不兼容问题,因此最好完全避免 MySQLdb.escape_string()。
作为最后的手段,我会在返回之前这样做:
name = name.replace("\\\'","\'\'")
有什么想法吗?