下午好,我在Django 1.10中有一个应用程序,我需要在其中创建bd的备份,当用户单击将放置在模板中的按钮并将该副本下载到Windows团队时,应创建该副本。用户。

在我的views.py中,我有以下内容。

def backup(request):
    subprocess.Popen("mysqldump -u root -p12345 victimas > /home/proyecto/backup.sql")
    subprocess.Popen("gzip -c /home/proyecto/backup.sql > /home/proyecto/backup.gz")
    dataf = open('/home/proyecto/backups/backup.gz', 'r')
    return HttpResponse(dataf.read(), mimetype='application/x-gzip')


但是我得到了错误

[Errno 2] No such file or directory: django mysqldump


直接从控制台执行此操作,将为我创建文件,并检查文件夹的权限。
感谢您的配合

最佳答案

根据Popen文档,Popen接受参数列表。如果将其传递给字符串,它将被视为命令名称-整个字符串将被视为命令,而不是带有参数的命令。

使用以下命令分割字符串参数:

导入shlex
command_line =“ mysqldump -u根目录-p12345受害人> /home/proyecto/backup.sql”
args = shlex.split(command_line)
subprocess.Popen(参数)

关于mysql - 备份数据库Django MysqlDump,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46819506/

10-12 17:57