Django에서 createsuperuser 명령 자동화

Vaibhav Vaibhav 2024년2월16일
  1. Django Shell을 사용하여 수퍼 유저 생성
  2. Python 스크립트를 사용하여 수퍼 유저 생성
Django에서 createsuperuser 명령 자동화

Django에서는 관리자 권한이있는 사용자를 수퍼 유저라고합니다. 수퍼 유저는 모든 것을 할 수 있습니다. 새로운 사용자 생성, 기존 사용자 삭제, 다른 사용자의 정보 조작 등을 할 수 있습니다.

Django에서는 수퍼 유저를 생성하기 위해 일반적으로 명령 줄 명령 인python manage.py createsuperuser를 사용하고 사용자 이름, 이메일 및 비밀번호와 같은 몇 가지 추가 입력을 사용합니다.

하지만이 전체 프로세스를 자동화하거나 한 줄의 코드로 완료 할 수 있다면 놀라운 일이 아닐까요?

이 기사에서는 수퍼 유저 생성을 자동화하는 방법을 배웁니다.

Django Shell을 사용하여 수퍼 유저 생성

Django Shell은 Django의 데이터베이스 API를 사용하여 데이터베이스와 상호 작용하는 명령 줄 Python 도구입니다. Django Shell을 사용하여 데이터베이스에 데이터를 생성하고 기존 데이터를 수정하고 기존 데이터를 삭제할 수도 있습니다. 또한 새로운 사용자와 슈퍼 사용자를 만들 수도 있습니다.

Django Shell을 사용하여 수퍼 유저를 생성하려면 다음 스크립트를 사용하십시오.

echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('userUsername', 'userEmail', 'userPassword')" | python manage.py shell

이 스크립트는 Django에서 사용하는 사용자 모델을 가져 오기 위해 먼저get_user_model메소드를 가져옵니다.

이 메서드는 실제 사용자 모델 개체에 대한 참조를 검색하여User변수에 저장합니다.

이 참조를 사용하여create_superuser()를 사용하여 새 수퍼 유저를 생성합니다. 이 방법은 사용자 이름, 이메일 및 비밀번호를 허용합니다.

이 필드는 Django의 기본 사용자 모델에 유효합니다. 사용자 정의 사용자 모델을 사용하는 경우 사용자 또는 수퍼 유저를 만드는 필드가 그에 따라 변경됩니다.

Python 스크립트를 사용하여 수퍼 유저 생성

Django 모델은 Django 프로젝트의 모든 곳에서 액세스 할 수 있으므로이를 사용하여 사용자와 수퍼 유저를 만들 수 있습니다. 일부 입력을 받아들이는 함수를 만든 다음이 작업을 위해이를 사용하여 수퍼 유저를 만들 수 있습니다.

from django.contrib.auth.models import User


def createSuperUser(username, password, email="", firstName="", lastName=""):
    invalidInputs = ["", None]

    if username.strip() in invalidInputs or password.strip() in invalidInputs:
        return None

    user = User(
        username=username,
        email=email,
        first_name=firstName,
        last_name=lastName,
    )
    user.set_password(password)
    user.is_superuser = True
    user.is_staff = True
    user.save()

    return user

이 함수에는 사용자 이름과 암호라는 두 개의 필수 인수와 세 개의 선택적 인수가 있습니다. 전달 된 값을 기반으로 수퍼 유저를 생성하고 새로 형성된 수퍼 유저에 대한 참조를 반환합니다.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Django User