2013-04-17 100 views
0

我想用Django生成一个完整的SQL文件,该文件可以下载并执行以创建SQLite数据库。使用Django为SQLite生成SQL插入语句

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

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

有什么想法?

回答

0

SQLite对此有quote函数。 当您在整个数据库中使用sqlite3命令行工具时也会使用它。

+0

我找不到在Python/Django中使用此函数的任何参考http://docs.python.org/2/library/sqlite3.html –

+0

它是一个* SQLite *函数。只有当原始数据在数据库中时,才能使用它。 –

+0

原始数据位于MySQL数据库中,但我不想在数据库级别上工作。我使用Django视图来生成要下载的文件。 –