我想用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("\\\'","\'\'")
有什么想法吗?
答案 0 :(得分:0)
SQLite具有quote
功能。
当sqlite3
整个数据库时,.dump
命令行工具也会使用它。