什么时候应该使用 django-admin.py 和 manage.py?

Posted

技术标签:

【中文标题】什么时候应该使用 django-admin.py 和 manage.py?【英文标题】:When should you use django-admin.py versus manage.py? 【发布时间】:2011-03-14 07:32:33 【问题描述】:

背景:

当我运行django-admin.py loaddata example.json 时,我得到了这个错误。 “ImportError:无法导入设置,因为环境变量 DJANGO_SETTINGS_MODULE 未定义。”我明白这个问题。它需要 DJANGO_SETTINGS_MODULE 才能访问数据库来执行此导入。我以前遇到过这个问题,到目前为止我已经设法避开它。

在阅读文档时,我发现manage.py 是 django-admin.py 的包装器;它将项目放在sys.path 上并设置DJANGO_SETTINGS_MODULE 环境。哇!哇!我知道如何解决我的问题。

苏... 为什么Django documentation 代码示例在演示loaddatadumpdata 等子命令时使用django-admin.py 而不是manage.py?

【问题讨论】:

【参考方案1】:

如果设置了DJANGO_SETTINGS_MODULE 环境变量,您可以在任何工作目录中使用django-admin.py,而您需要在项目目录中才能使用./manage.py(或将其放在您的路径中)。

使用virtualenv,并通过bin/activate设置DJANGO_SETTINGS_MODULE,然后就可以使用django-admin.py了。

【讨论】:

【参考方案2】:

为什么 Django 文档代码示例在演示 loaddata 和 dumpdata 等子命令时使用 django-admin.py 而不是 manage.py?

嗯,因为这些脚本在原理上是相同的,但您已经提到了不同之处。 Django 文档也提到了

django-admin.py <subcommand> [options]
manage.py <subcommand> [options]

并排。通常您使用django-admin.py 启动一个新项目或应用程序,然后使用manage.py 完成其余的工作。

【讨论】:

我确实认为这会使文档对于经验不足的用户更加混乱,而且我已经有大约 9 个月的时间使用 django。感谢您的帮助!

以上是关于什么时候应该使用 django-admin.py 和 manage.py?的主要内容,如果未能解决你的问题,请参考以下文章

django-admin.py 不是内部或外部命令

python +djanjo 开发

设置 django 的 django-admin,py 的问题

Django 命令行工具django-admin.py与manage.py

django-admin.py和manage.py的用法

找不到命令:django-admin.py