我正在编写一个为客户端进行科学计算的Django应用程序,他希望能够将数据导出为MySQL转储文件。有没有一种简单的方法可以做到这一点,还是需要编写自定义序列化器?
答案 0 :(得分:3)
不需要为此使用Django。 MySQL包含一个为您执行此操作的命令:
mysqldump -u USERNAME -pPASSWORD DATABASE_NAME > DATABASE_FILE.sql
答案 1 :(得分:0)
如果要导出的表结构是常量(可能是),那么编写模板以将其生成为文本输出会很容易。您可以使用Django模板(它们不是特定于HTML的),也可以只使用字符串插值。
类似的东西:
def dump(w, qs):
for r in qs:
w.write ("insert into tablename (fieldA, fieldB, fieldC) values ('%s', '%s', %d);\n" % (
quote(r.fieldA), quote(r.fieldB), int(r.fieldC)))
假设fieldA
和fieldB
是字符串,fieldC
是整数,quote()
是MySQL安全转义函数。 w
参数是类文件对象(可以是Django HttpResponse
对象),qs是包含所需数据的查询集。