Python(5) - Django 가상 환경과 settings.py
Python 관련 포스팅
- Python(1) - Django 설치
- Python(2) - MySQL 연결
- Python(3) - PostgreSQL 연결
- Python(4) - Query 만들기
- Python(5) - Django 가상 환경과 settings.py
Django를 써보면서 알게 된 내용을 정리했습니다.
틀린 내용이 있다면 편하게 의견 남겨주시기 바랍니다 :)
가상환경 설정
1. 가상환경 생성
- 프로젝트 별로 다른 버전의 python과 django를 사용하기 위함
- 가상환경을 관리할 폴더와 프로젝트를 관리할 폴더를 각각 만드는 것이 관리하기 편함
- 만들 프로젝트의 이름으로 가상환경을 생성
- 이 방법이 가상환경을 관리하기 편하다고 생각
mkdir [가상환경을 관리할 폴더 이름] # 디렉터리 생성 cd [가상환경 폴더 저장할 디렉터리] # 디렉터리로 이동 python -m venv [가상환경 이름] # 가상환경 생성
2. 가상환경 진입(활성화)
source [가상환경 이름]/scripts/activate # 가상환경 활성화
- 가상 환경에 진입하면, 터미널의 디렉터리명 앞에
(가상환경 이름)
이 덧붙여져 나타남 - 가상환경에서 나가려면 경로와 상관없이
deactivate
입력deactivate # 가상환경 비활성화
3. django
, djangorestframework
, psycopg2
설치
- 가상환경에 진입한 상태에서 설치를 진행함
pip install django pip install djangorestframework pip install psycopg2 # PostgreSQL 사용시 설치
- pip upgrade 경고 문구가 뜬다면,
pip upgrade: (windows)python -m pip install --upgrade pip
- 참고
- django upgrade(특정 버전):
pip install --upgrade django==4.0.5
- pip version 확인:
pip --version
- 업데이트 해야 할 패키지 목록 확인:
pip list -o
- django upgrade(특정 버전):
4. project만들기
- 프로젝트를 설치할 폴더로 이동해 프로젝트 이름으로 디렉터리 만들기
cd [프로젝트를 설치할 폴더] mkdir [프로젝트 이름] cd [프로젝트 이름]
-
[project 이름]
을config .
으로 만들면 프로젝트 관리가 수월함
(출처: 참고한 사이트)cd .. django-admin startproject [project 이름] # 프로젝트 생성 python manage.py runserver # 서버 실행
settings.py 설정
1. SECRET_KEY
설정
- project root 경로에
secret_file.py
생성 settings.py
의SECRET_KEY = '...(내용)...'
복사해 붙여넣기settings.py
수정import secret_file ... SECRET_KEY = secret_file.SECRET_KEY
2. INSTALLED_APPS
설정
- app 설치
django-admin startapp [app 이름] # app 생성
- 생성한
app
과rest_framework
추가INSTALLED_APPS = [ ... 'rest_framework', # 추가 '생성한 app 이름', # app 추가 '생성한 app 이름', # app 추가 ]
3. TEMPLATES
의 'DIRS'
설정
TEMPLATES = [
{
...
'DIRS': [BASE_DIR / 'templates'], # 수정
...
},
]
- 여기서 BASE_DIR은 project 폴더
- root에
templates
디렉터리 생성- 모든 앱이 공통으로 사용할 템플릿 디렉터리 -
[root]/templates
- 특정 앱이 사용할 템플릿 디렉터리 -
[root]/templates/[특정 app]
- 모든 앱이 공통으로 사용할 템플릿 디렉터리 -
- 이렇게 templates 폴더를 관리해주어야 Django가 제대로 인식 할 수 있음
4. DB 설정(postgreSQL
)
- 참고로, 이 과정은 반드시
python manage.py makemigration
을 하기 전에 시행되어야 함DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'DB이름', # DB 이름 'USER': 'postgres', 'PASSWORD': '1234', # 비밀번호 'HOST': 'localhost', 'PORT': '5432', } }
secret_file.py
에 위 내용 붙여넣기- settings.py는 아래 코드로 바꾸기
DATABASES = secret_file.DATABASES
5. LANGUAGE_CODE
, TIME_ZONE
설정
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
6. STATICFILES_DIRS
추가하기
-
STATIC_URL = 'static/'
아래에 추가하기STATIC_URL = 'static/' STATICFILES_DIRS = [ BASE_DIR / 'static', ]
[project]
아래에static
폴더 만들기BASE_DIR / 'static'
은[root]/static
디렉터리를 의미함
7. urls.py
작성
[project 이름]/urls.py
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('account/', include('account.urls')), # 예시 ]
8. admin 페이지 사용하기
- Django에서 제공하는 admin 페이지입니다
superuser
생성하기python manage.py createsuperuser # superuser 생성
- 사용자 이름, 이메일, password를 입력
-
[app]/admin.py
작성from django.contrib import admin from .models import 모델명 # Register your models here. admin.site.register(모델명)
- 서버 실행 후
admin
에 접속bash python manage.py runserver
http://127.0.0.1:8000/admin
에 접속