我想達到的目標:如何通過外部python腳本在Django shell中執行代碼?
我想創建一個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以執行自定義代碼?
怎麼樣'蟒蛇manage.py殼
falsetru