我怎样才能在命令行上使用 Django 身份验证用户而不必手动输入密码?
How can I a Djanog auth user on the command line and not have to manually enter the password?
我正在使用 Django 3.2 和 auth 模块。我想在命令行上创建一个超级用户(最终包含在 docker 脚本中)。当我尝试这个时
$ python manage.py createsuperuser --username=joe --email=joe@example.com
系统提示我输入密码。该模块似乎不支持“--password”参数...
$ python manage.py createsuperuser --username=joe --email=joe@example.com --password=password
usage: manage.py createsuperuser [-h] [--username USERNAME] [--noinput] [--database DATABASE]
[--email EMAIL] [--version] [-v {0,1,2,3}] [--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback] [--no-color] [--force-color]
[--skip-checks]
manage.py createsuperuser: error: unrecognized arguments: --password=password
有没有一种方法可以在不手动干预的情况下自动创建用户?
这样做是出于安全原因:通常 shell 命令会写入历史文件,如果您将密码作为参数传递,黑客最终可能会查看历史并获得密码的超级用户。它可以读取DJANGO_SUPERUSER_PASSWORD
变量的内容来设置密码。
因此您可以设置密码:
<strong>DJANGO_SUPERUSER_PASSWORD=somepassword</strong> python manage.py createsuperuser --no-input --username=joe --email=joe@example.com
但是我强烈建议不要在脚本文件中设置 DJANGO_SUPERUSER_PASSWORD
,而是在别处定义环境变量。
我正在使用 Django 3.2 和 auth 模块。我想在命令行上创建一个超级用户(最终包含在 docker 脚本中)。当我尝试这个时
$ python manage.py createsuperuser --username=joe --email=joe@example.com
系统提示我输入密码。该模块似乎不支持“--password”参数...
$ python manage.py createsuperuser --username=joe --email=joe@example.com --password=password
usage: manage.py createsuperuser [-h] [--username USERNAME] [--noinput] [--database DATABASE]
[--email EMAIL] [--version] [-v {0,1,2,3}] [--settings SETTINGS]
[--pythonpath PYTHONPATH] [--traceback] [--no-color] [--force-color]
[--skip-checks]
manage.py createsuperuser: error: unrecognized arguments: --password=password
有没有一种方法可以在不手动干预的情况下自动创建用户?
这样做是出于安全原因:通常 shell 命令会写入历史文件,如果您将密码作为参数传递,黑客最终可能会查看历史并获得密码的超级用户。它可以读取DJANGO_SUPERUSER_PASSWORD
变量的内容来设置密码。
因此您可以设置密码:
<strong>DJANGO_SUPERUSER_PASSWORD=somepassword</strong> python manage.py createsuperuser --no-input --username=joe --email=joe@example.com
但是我强烈建议不要在脚本文件中设置 DJANGO_SUPERUSER_PASSWORD
,而是在别处定义环境变量。