ダウンロードして実行して SQLite DB を作成できる完全な SQL ファイルを Django で生成したいと考えています。
問題は、文字列をエスケープして、ダウンロードするファイルに挿入することです。これは私がこれまでに得たものです:
name = MySQLdb.escape_string(self.name.encode("utf-8")).decode("utf-8")
return "INSERT INTO names VALUES(%d,'%s');" % (self.id, name)
しかし残念なことに、MySQL は、SQlite が好まないバックスラッシュ \ で単一引用符をエスケープします。MySQLdb.escape_string() を置き換えるために、Django に含まれているものを使用したいと思います。MySQL エスケープと SQLite の間に非互換性の問題が他にあるかどうかはわかりません。そのため、MySQLdb.escape_string() を完全に回避することをお勧めします。
最後の手段として、戻る前にこれを行います。
name = name.replace("\\\'","\'\'")
何かご意見は?