Django从批处理文件创建超级用户

Nic*_*mes 7 django cmd batch-file command-prompt

我正在尝试创建一个运行syncdb的批处理文件来创建数据库文件,然后使用用户名"admin"和密码"admin"创建一个超级用户.

我的代码到目前为止:

python manage.py syncdb --noinput
python manage.py createsuperuser --username admin --email admin@exmaple.com 
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

现在,这会提示我输入密码,然后确认密码.我可以使用来自同一批处理文件,另一个批处理文件的命令输入此信息,还是这是不可能的?

Dav*_* D. 17

因为看起来你无法提供密码,echo ''stuff | cmd我看到的唯一方法就是用Python创建它:

python manage.py syncdb --noinput
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" | python manage.py shell
python manage.py runserver
Run Code Online (Sandbox Code Playgroud)


Ale*_*mov 17

从 Django 3.0(根据文档)开始,您可以使用该createsuperuser --no-input选项并使用DJANGO_SUPERUSER_PASSWORD环境变量设置密码,例如,

DJANGO_SUPERUSER_PASSWORD=my_password ./manage.py createsuperuser \
    --no-input \
    --username=my_user \
    --email=my_user@domain.com
Run Code Online (Sandbox Code Playgroud)

或者,使用所有环境变量:

DJANGO_SUPERUSER_PASSWORD=my_password \
DJANGO_SUPERUSER_USERNAME=my_user \
DJANGO_SUPERUSER_EMAIL=my_user@domain.com \
./manage.py createsuperuser \
--no-input
Run Code Online (Sandbox Code Playgroud)

  • 应该是 DJANGO_SUPERUSER_USERNAME (2认同)