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

cit*_*rad 17 django django-admin

背景:

当我运行时,django-admin.py loaddata example.json我收到此错误."ImportError:无法导入设置,因为未定义环境变量DJANGO_SETTINGS_MODULE." 我理解这个问题.它需要DJANGO_SETTINGS_MODULE才能访问数据库来执行此导入.我之前遇到过这个问题,到目前为止我已经成功地采取了措施.

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

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

Mat*_*kel 20

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

使用virtualenv,并DJANGO_SETTINGS_MODULE设置bin/activate,然后你可以使用django-admin.py


mik*_*iku 7

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

好吧,因为这些脚本在原理上是相同的,有差异,你已经提到了.Django文档也提到了

django-admin.py <subcommand> [options]
manage.py <subcommand> [options]
Run Code Online (Sandbox Code Playgroud)

并排.通常django-admin.py用于启动新项目或应用程序,然后manage.py执行其余操作.

  • 我认为这使得文档对于经验不足的用户来说更加困惑,而且我用django工作了大约9个月.谢谢你的帮助! (2认同)