什么时候应该使用 django-admin.py 而不是 Manage.py?
背景:
当我运行 django-admin.py loaddata example.json 时,我收到此错误。 “ImportError:无法导入设置,因为环境变量 DJANGO_SETTINGS_MODULE 未定义。”我明白这个问题。它需要 DJANGO_SETTINGS_MODULE 才能访问数据库来执行此导入。我以前遇到过这个问题,到目前为止我已经设法回避它。
在阅读文档时,我发现 manage.py
是 django-admin.py 的包装器;它将项目放在 sys.path
上并设置 DJANGO_SETTINGS_MODULE
环境。哇!哇!我知道如何解决我的问题。
苏... 为什么 Django 文档 代码示例使用 django-admin.py演示诸如 loaddata
和 dumpdata
等子命令时,manage.py 的情况如何?
Background:
When I run the django-admin.py loaddata example.json
I get this error. "ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined." I understand the problem. It needs the DJANGO_SETTINGS_MODULE to be able to access the database to do this import. I've had this problem before and I've managed to side step it thus far.
In reading the docs, I discovered that the manage.py
is a wrapper for django-admin.py; it puts the project on the sys.path
and sets the DJANGO_SETTINGS_MODULE
environment. Woot! Whoa! I know how to fix my problem.
Soo...
Why do the Django documentation code examples use django-admin.py instead of manage.py when demonstrating subcommands such as loaddata
and dumpdata
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果设置了
DJANGO_SETTINGS_MODULE
环境变量,则可以从任何工作目录使用django-admin.py
,而您需要在项目目录中才能使用。 /manage.py
(或将其放在您的路径中)。使用
virtualenv
,并通过bin/activate
设置DJANGO_SETTINGS_MODULE
,然后就可以使用django-admin.py
。If your
DJANGO_SETTINGS_MODULE
environment variable is set, you can usedjango-admin.py
from any working directory, whereas you need to be in the project directory to use./manage.py
(or have it in your path).Use
virtualenv
, and haveDJANGO_SETTINGS_MODULE
set bybin/activate
, and then you can usedjango-admin.py
.嗯,因为这些脚本在原理上是相同的,但也有差异,你已经提到了。 Django 文档也
并排提到。通常,您使用 django-admin.py 来启动新项目或应用程序,并使用 manage.py 来完成其余的工作。
Well, because these scripts are the same in priciple, with the differences, you already mentioned. The Django docs also mention
side by side. Usually you use
django-admin.py
to start a new project or application andmanage.py
to do the rest.