사용자 도구

사이트 도구


python:django:manage

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

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