사용자 도구

사이트 도구


python:django:manage

Django 서버 관리

철학

직원들이나 고객들이 컨텐츠를 수정하기 위한 관리자 사이트를 만드는 것은 딱히 창의적일 필요없는 지루한 작업입니다. 이런 이유로, Django는 모델에 대한 관리용 인터페이스를 모두 자동으로 생성합니다.

Django는 Lawrence Journal-World 신문사의 프로그래머가 처음 개발하였습니다. 이런 태생적인 이유 때문에, 《컨텐츠 게시자》 와 《공개》 사이트의 구분이 명확합니다. 사이트 관리자는 뉴스 기사, 사건, 스포츠 경기 결과 같은 것들을 시스템에 추가합니다. 그렇게 추가된 컨텐츠는 《공개》 사이트에 노출됩니다. Django는 사이트 관리자가 컨텐츠를 편집할 수 있는 통합적인 인터페이스를 생성하는 문제를 해결합니다.

관리자 사이트는 사이트 방문자를 위한 것이 아니라, 사이트 관리자를 위한 것입니다.

Django Admin

서버구동

  • 서버실행
$ python manage.py runserver
  • localhost:8000로 접속하면 서버페이지를 접속할 수 있다.

관리자 생성하기

우선, 관리 사이트에 로그인 할 수 있는 사용자를 생성해 봅시다. 다음과 같은 명령을 수행합니다.

$ python manage.py createsuperuser

DATABASE 설정하기

SQLITE3

Django가 기본적으로 제공하는 DB Client

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

PostgreSQL

  • 필요 어댑터 - psycopg2

psycopg2와 psycopg2-binary의 차이가 있다고 하는데 무슨 차이인지는 잘 모르겠다. product버전에서는 psycopg2를 써야하나? production 환경 또는 성능이 중요한 경우, mysqlclient와 psycopg2를 사용하기를 권장한다.

pip install psycopg2-binary
  • 설정파일변경
settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': config('POSTGRES_NAME'),
        'USER': config('POSTGRES_USER'),
        'PASSWORD': config('POSTGRES_PASSWORD'),
        'HOST': config('POSTGRES_HOST'),
        'PORT': config('POSTGRES_PORT'),
    }
}

민감정보숨기기

pip install python-decouple
  • 설정파일수정
settings.py
from decouple import config
SECRET_KEY = config('SECRET_KEY')
  • 설정 키-값 : settings.ini파일에 저장
settings.ini
[settings]
SECRET_KEY=ajlsdkfjla;sdjf;lasdjfl;ajdsfl;ajdsl;f
POSTGRES_NAME=pjt2
POSTGRES_USER=unani
POSTGRES_PASSWORD=password
POSTGRES_HOST=hostname
POSTGRES_PORT=5432

MySQL

  • 필요 어답터 - mysqlclient, pymysql

production 환경 또는 성능이 중요한 경우, mysqlclient와 psycopg2를 사용하기를 권장한다.

pip install mysqlclient
  • 설정파일변경
settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'databaseName',
        'USER': 'databaseUser',
        'PASSWORD': 'databasePassword',
        'HOST': 'localhost',
        'PORT': 'portNumber',
    }
}
python/django/manage.txt · 마지막으로 수정됨: 2025/04/15 10:05 저자 127.0.0.1