我想运行一个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