scr*_*www 8 python linux django shell manage.py
我想要实现的目标:
我想创建一个python脚本来从CLI中停用数据库中的Django用户.我想出了这个:
$ sudo python manage.py shell
>>> user = User.objects.get(username=FooBar)
>>> user.is_active = False
>>> user.save()
>>> exit()
Run Code Online (Sandbox Code Playgroud)
当我手动输入manualy命令后,上面的代码工作.但是,我想将命令放在一个.py脚本中
$ sudo python script.py
Run Code Online (Sandbox Code Playgroud)
现在我尝试了不同的aproaches:
os.system("command1 && command2 && command3")subprocess.Popen("command1 && command2 && command3",
stdout=subprocess.PIPE, shell=True)问题:
这不起作用!我认为这个问题在这里,因为Python等待打开的Django shell(第一个命令)完成,这是永远不会.它不执行脚本中的其余命令,因为第一个命令将其置于保持状态.
subprocess.popen 可以在shell中执行命令,但只能在Python shell中执行,我想使用Django shell.
任何想法如何使用.py脚本访问Django shell以执行自定义代码?
尝试将命令作为 here 文档输入到正在运行的 django-shell 中:
$ sudo python manage.py shell << EOF
user = User.objects.get(username=FooBar)
user.is_active = False
user.save()
exit()
EOF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9323 次 |
| 最近记录: |