0

我想用 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("\\\'","\'\'")

有什么想法吗?

4

1 回答 1

0

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

于 2013-04-17T18:41:59.777 回答