문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| python:django:manage [2021/10/20 15:47] – [PostgreSQL] taekgu | python:django:manage [2025/04/15 10:05] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | ====== Django 서버 관리 ====== | ||
| + | ==== 철학 ==== | ||
| + | |||
| + | 직원들이나 고객들이 컨텐츠를 수정하기 위한 관리자 사이트를 만드는 것은 딱히 창의적일 필요없는 지루한 작업입니다. | ||
| + | 이런 이유로, Django는 모델에 대한 관리용 인터페이스를 모두 자동으로 생성합니다. | ||
| + | |||
| + | Django는 Lawrence Journal-World 신문사의 프로그래머가 처음 개발하였습니다. 이런 태생적인 이유 때문에, 《컨텐츠 게시자》 와 《공개》 사이트의 구분이 명확합니다. | ||
| + | 사이트 관리자는 뉴스 기사, 사건, 스포츠 경기 결과 같은 것들을 시스템에 추가합니다. 그렇게 추가된 컨텐츠는 《공개》 사이트에 노출됩니다. | ||
| + | Django는 사이트 관리자가 컨텐츠를 편집할 수 있는 통합적인 인터페이스를 생성하는 문제를 해결합니다. | ||
| + | |||
| + | 관리자 사이트는 사이트 방문자를 위한 것이 아니라, 사이트 관리자를 위한 것입니다. | ||
| + | |||
| + | [[python: | ||
| + | |||
| + | ===== 서버구동 ===== | ||
| + | * 서버실행 | ||
| + | <code bash> | ||
| + | $ python manage.py runserver | ||
| + | </ | ||
| + | * localhost: | ||
| + | ===== 관리자 생성하기 ===== | ||
| + | 우선, 관리 사이트에 로그인 할 수 있는 사용자를 생성해 봅시다. 다음과 같은 명령을 수행합니다. | ||
| + | <code bash> | ||
| + | $ python manage.py createsuperuser | ||
| + | </ | ||
| + | |||
| + | ===== DATABASE 설정하기 ===== | ||
| + | ==== SQLITE3 ==== | ||
| + | Django가 기본적으로 제공하는 DB Client | ||
| + | <code python settings.py> | ||
| + | DATABASES = { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | ==== PostgreSQL ==== | ||
| + | * 필요 어댑터 - psycopg2 | ||
| + | psycopg2와 psycopg2-binary의 차이가 있다고 하는데 무슨 차이인지는 잘 모르겠다. product버전에서는 psycopg2를 써야하나? | ||
| + | production 환경 또는 성능이 중요한 경우, mysqlclient와 psycopg2를 사용하기를 권장한다. | ||
| + | <code bash> | ||
| + | pip install psycopg2-binary | ||
| + | </ | ||
| + | * 설정파일변경 | ||
| + | <code python settings.py> | ||
| + | DATABASES = { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | === 민감정보숨기기 === | ||
| + | <code bash> | ||
| + | pip install python-decouple | ||
| + | </ | ||
| + | * 설정파일수정 | ||
| + | <code python settings.py> | ||
| + | from decouple import config | ||
| + | SECRET_KEY = config(' | ||
| + | </ | ||
| + | * 설정 키-값 : settings.ini파일에 저장 | ||
| + | <code text settings.ini> | ||
| + | [settings] | ||
| + | SECRET_KEY=ajlsdkfjla; | ||
| + | POSTGRES_NAME=pjt2 | ||
| + | POSTGRES_USER=unani | ||
| + | POSTGRES_PASSWORD=password | ||
| + | POSTGRES_HOST=hostname | ||
| + | POSTGRES_PORT=5432 | ||
| + | </ | ||
| + | ==== MySQL ==== | ||
| + | * 필요 어답터 - mysqlclient, | ||
| + | production 환경 또는 성능이 중요한 경우, mysqlclient와 psycopg2를 사용하기를 권장한다. | ||
| + | <code bash> | ||
| + | pip install mysqlclient | ||
| + | </ | ||
| + | * 설정파일변경 | ||
| + | <code python settings.py> | ||
| + | DATABASES = { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | } | ||
| + | </ | ||