====== Django 서버 관리 ====== ==== 철학 ==== 직원들이나 고객들이 컨텐츠를 수정하기 위한 관리자 사이트를 만드는 것은 딱히 창의적일 필요없는 지루한 작업입니다. 이런 이유로, Django는 모델에 대한 관리용 인터페이스를 모두 자동으로 생성합니다. Django는 Lawrence Journal-World 신문사의 프로그래머가 처음 개발하였습니다. 이런 태생적인 이유 때문에, 《컨텐츠 게시자》 와 《공개》 사이트의 구분이 명확합니다. 사이트 관리자는 뉴스 기사, 사건, 스포츠 경기 결과 같은 것들을 시스템에 추가합니다. 그렇게 추가된 컨텐츠는 《공개》 사이트에 노출됩니다. Django는 사이트 관리자가 컨텐츠를 편집할 수 있는 통합적인 인터페이스를 생성하는 문제를 해결합니다. 관리자 사이트는 사이트 방문자를 위한 것이 아니라, 사이트 관리자를 위한 것입니다. [[python:django:admin|Django Admin]] ===== 서버구동 ===== * 서버실행 $ python manage.py runserver * localhost:8000로 접속하면 서버페이지를 접속할 수 있다. ===== 관리자 생성하기 ===== 우선, 관리 사이트에 로그인 할 수 있는 사용자를 생성해 봅시다. 다음과 같은 명령을 수행합니다. $ python manage.py createsuperuser ===== DATABASE 설정하기 ===== ==== SQLITE3 ==== Django가 기본적으로 제공하는 DB Client 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 * 설정파일변경 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 * 설정파일수정 from decouple import config SECRET_KEY = config('SECRET_KEY') * 설정 키-값 : 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 * 설정파일변경 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'databaseName', 'USER': 'databaseUser', 'PASSWORD': 'databasePassword', 'HOST': 'localhost', 'PORT': 'portNumber', } }