"python manage.py runserver" 与 "django-admin runserver" 的区别

9
我安装了名为Scaffold的应用程序,当我使用python manage.py runserver运行时,它可以完美地运行。但是当我尝试使用django-admin启动它时,它失败了。
You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

我尝试使用django-admin migrate --settings=scaffold.settings进行调用,但出现了ImportError: No module named scaffold.settings的错误。
我已经尝试了多种方法并在Google上搜索过,但似乎无法找到需要更改的内容。Settings.py文件位于目录..\scaffold下,但我不再确定是否需要使用该文件。
1个回答

14
除非有特定原因不想使用项目特定配置,否则应该使用manage.py。根据文档

manage.py在每个Django项目中自动创建。 manage.py是django-admin的一个薄包装器,它在委派给django-admin之前为您处理了一些事情:

  • 将项目包放置在sys.path上。
  • 设置DJANGO_SETTINGS_MODULE环境变量,使其指向您的项目的settings.py文件。
  • 调用django.setup()以初始化Django的各种内部功能。

我明白了。但是,manage.py 不是被弃用了吗?现在应该通过 django-admin 来添加超级用户和其他操作,对吧? - Eloque
你有这个链接吗?使用超级用户权限运行Django管理操作将非常不安全。 - scytale
没关系。我误解了。manage.py只是django-admin的包装器。谢谢你的回答,是正确的。 - Eloque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接