当前位置:  开发笔记 > 编程语言 > 正文

如何通过外部python脚本在Django shell中执行代码?

如何解决《如何通过外部python脚本在Djangoshell中执行代码?》经验,为你挑选了1个好方法。

我想要实现的目标:

我想创建一个python脚本来从CLI中停用数据库中的Django用户.我想出了这个:

$ sudo python manage.py shell
>>> user = User.objects.get(username=FooBar)
>>> user.is_active = False
>>> user.save()
>>> exit()

当我手动输入manualy命令后,上面的代码工作.但是,我想将命令放在一个.py脚本中

$ sudo python script.py

现在我尝试了不同的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以执行自定义代码?



1> Daniel Rosem..:

首先,您不应该使用它来访问您的Python shell sudo.没有必要以root身份运行.

其次,创建从命令提示符运行的脚本的方法是编写自定义manage.py脚本,以便运行./manage.py deactivate_users.有关此操作的完整说明,请参阅文档.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有