2013-04-17 69 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視圖來生成要下載的文件。 –