如果您只想在django环境中运行脚本,那么最简单的方法是创建一个
./manage.py子命令,如下所示
from django.core.management.base import baseCommandfrom my_app.models import MyModelclass Command(baseCommand): help = 'runs your pre in the django environment' def handle(self, *args, **options): all_entries = MyModel.objects.all() for entry in all_entries: self.stdout.write('entry "%s"' % entry)该文档对解释这一点非常有帮助。
但是,您可以指定一个设置文件以与运行
$ django-admin.py runserver --settings=settings.dev
它将使用其中的设置来运行测试服务器,
dev但是,我担心您的问题比这简单得多。我不建议您更改
manage.py文件,因为这会导致不一致和将来的麻烦。
还请注意,
dev.py如果要执行此操作,则应为完整的设置文件。我个人建议这样的结构:
|-settings| |- __init__.py| |- base.py| |- dev.py| |- prod.py
并保留所有常规设置,
base.py然后将
dev.pyetc的第一行更改为
# settings/dev.pyfrom .base import *DEBUG = True...
编辑
如果您只是想测试一下,为什么不尝试
$ ./manage.py shell
或使用您的开发设置
$ django-admin.py shell --settings=settings.dev
因为这将为您设置所有OS环境变量,
settings.py然后您可以使用以下命令进行测试/调试
>>> from my_app.models import MyModel>>> all_entries = MyModel.objects.all()>>> for entry in all_entries:... print entry



