我想運行一個python腳本,應該做的:Python腳本來運行Django的命令
- 創建一個Django項目:
django-admin startproject foobar
- 在項目中創建一個應用程序:
python manage.py barfoo
- 添加的條目在設置的
INSTALLED_APP
中新創建的應用barfoo
。
我怎樣才能做到這一點?
我想運行一個python腳本,應該做的:Python腳本來運行Django的命令
django-admin startproject foobar
python manage.py barfoo
INSTALLED_APP
中新創建的應用barfoo
。我怎樣才能做到這一點?
讀一點華南簡介子和POPEN方法。這可能是你正在尋找的。
Popen(["django-admin", "startproject", "%s" % your_name ], stdout=PIPE).communicate()
Popen(["python", "manage.py", "%s" % your_app_name ], stdout=PIPE).communicate()
3. 我知道這不是一個完美的代碼,但我只給一個想法。
with open("settings.py", 'r') as file:
settings = file.readlines()
new_settings = []
for line in settings:
if "INSTALLED APPS" in line:
new_settings.append(line.replace("INSTALLED_APPS = (", "INSTALLED_APPS = (\n'%s'," % your_app_name))
else:
new_settings.append(line)
with open("settings.py", 'w') as file:
file.write("".join(new_settings))
似乎有做的#1和#一個Python的方式2
https://docs.djangoproject.com/en/dev/ref/django-admin/#running-management-commands-from-your-code
from django.core import management
management.call_command('flush', verbosity=0, interactive=False)
management.call_command('loaddata', 'test_data', verbosity=0)
6年後,我偶然發現了這個問題,試圖找出如何編寫一些測試對於只添加與項目中的其他應用程序交互的自定義模板標記的應用程序。希望這可以幫助某人。
大廈@groovehunter答案:現在official documentation(Django的1.10)inculdes之外開發此功能。
請注意,您需要調用startapp
之前,當前目錄切換到創建的項目。見this answer更多細節
from django.core import management
import os
management.call_command('startproject', 'foobar')
os.chdir('foobar')
management.call_command('startapp', 'barfoo')
,或者您可以使用額外的argumento到startproject
創建在當前目錄中的項目,如果你肯定不會有問題:
from django.core import management
management.call_command('startproject', 'foobar', '.')
management.call_command('startapp', 'barfoo')
_Maybe_爲#1,但不是#2或#3。這些在Python中都很容易實現。 – agf
我正在編輯它。 – Gandi
非常多改進:)。 – agf