【问题标题】:"python manage.py runserver" vs "django-admin runserver"“python manage.py runserver”与“django-admin runserver”
【发布时间】:2015-08-25 08:54:05
【问题描述】:

我安装了一个应用程序 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

我尝试了多种方法,用谷歌搜索,但似乎无法弄清楚我需要改变什么。 settings.py 文件位于 ..\scaffold 目录中,但我不再确定这是我需要使用的那个。

【问题讨论】:

    标签: python django


    【解决方案1】:

    您应该使用manage.py,除非有特定原因不想要特定于项目的配置。根据docs

    manage.py 会在每个 Django 项目中自动创建。 manage.py 是 django-admin 的一个精简包装器,它在委托给 django-admin 之前为您处理了几件事:

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

    【讨论】:

    • 我明白了。但是 manage.py 不是被弃用了吗?添加一个超级用户,现在应该通过 django-admin 完成吧?
    • 你有这个链接吗?以超级用户权限运行 django 管理员操作将非常不安全
    • 没关系。我误解了。 Manage.py 只是包装了 django-admin。谢谢你的回答,是正确的。
    猜你喜欢
    • 2022-07-07
    • 1970-01-01
    • 2020-02-27
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    相关资源
    最近更新 更多