【发布时间】:2016-04-08 02:23:46
【问题描述】:
我想要达到的目标:
我想创建一个 python 脚本来从 CLI 停用数据库中的 Django 用户。我想出了这个:
$ sudo python manage.py shell
>>> user = User.objects.get(username=FooBar)
>>> user.is_active = False
>>> user.save()
>>> exit()
当我在命令后手动输入命令时,上面的代码有效。但是,我想将执行命令放在一个 .py 脚本中,例如
$ sudo python script.py
现在我尝试了不同的方法:
os.system("command1 && command2 && command3")subprocess.Popen("command1 && command2 && command3", stdout=subprocess.PIPE, shell=True)
问题:
这不起作用! 我认为这个问题就在这里,因为 Python 一直等到打开的 Django shell(第一个命令)完成,而这永远不会。它不会执行脚本中的其余命令,因为第一个命令将其置于 Hold。
subprocess.popen 可以在 shell 中执行命令,但只能在 Python shell 中执行,我想使用 Django shell。
有人知道如何使用 .py 脚本访问 Django shell 以执行自定义代码吗?
【问题讨论】:
-
python manage.py shell < script.py怎么样?
标签: python linux django shell manage.py