Điều tôi muốn đạt được:Làm thế nào để thực hiện mã trong vỏ Django bởi một kịch bản python bên ngoài?
Tôi muốn tạo tập lệnh python để tắt người dùng Django trong cơ sở dữ liệu từ CLI. Tôi đã đưa ra điều này:
$ sudo python manage.py shell
>>> user = User.objects.get(username=FooBar)
>>> user.is_active = False
>>> user.save()
>>> exit()
Mã trên HOẠT ĐỘNG khi tôi tự nhập thủ công lệnh sau lệnh. Tuy nhiên, tôi muốn đặt thực thi các lệnh trong một kịch bản py như
$ sudo python script.py
diffirent Bây giờ tôi đã cố gắng aproaches:
os.system("command1 && command2 && command3")
subprocess.Popen("command1 && command2 && command3", stdout=subprocess.PIPE, shell=True)
Sự cố:
Điều này không hoạt động! Tôi nghĩ rằng vấn đề này là ở đây bởi vì Python chờ đợi cho đến khi mở Django shell (lệnh đầu tiên) kết thúc đó là không bao giờ. Nó không thực hiện phần còn lại của các lệnh trong kịch bản lệnh như lệnh đầu tiên đặt nó trong Hold.
subprocess.popen
có thể thực hiện lệnh trong trình bao nhưng chỉ trong vỏ Python, tôi muốn sử dụng trình bao Django.
Bất kỳ ai cũng có ý tưởng cách truy cập vỏ Django bằng tập lệnh .py để thực thi mã tùy chỉnh?
Làm thế nào về 'vỏ manage.py python
falsetru