Django 초기세팅

Minji Lee·2023년 2월 25일
0
post-thumbnail

Django: 웹 프로그램을 쉽고 빠르게 만들 수 있도록 도와주는 파이썬기반 웹 프레임워크

Django 특징

  • 장고의 규칙만 익히면 웹 프로그램 만들 수 있음
  • 튼튼한 웹 프레임워크 → 보안 공격을 기본적으로 잘 막아줌
  • 웹 프로그램 개발을 위한 도구와 기능이 대부분 존재

파이썬 가상환경

: 독립된 환경을 만들어주는 도구(하나의 PC안에 독립된 가상환경 여러개 생성 가능)
→ 하나의 PC에서 서로 다른 버전의 파이썬과 라이브러리를 쉽게 설치하여 사용

<mac 버전 가상환경 사용 - 터미널>

1. 홈 디렉터리(/Users/username)밑에 venvs디렉터리 생성

(base) user@user-mac ~ % mkdir venvs
(base) user@user-mac ~ % cd venvs

[자신의 현재 경로 확인 명령어 pwd]

(base) user@user-mac ~ % pwd
/Users/user

2. 파이썬 가상환경 만들기
python3 -m venv 가상환경이름

(base) user@user-mac venvs % python3 -m venv 가상환경이름

3. 가상환경 진입
source activate

(base) user@user-mac venvs % cd 가상환경이름/bin
(base) user@user-mac bin % source activate
(가상환경이름) user@user-mac bin %

4. 가상환경 벗어나기
deactivate

(가상환경이름) user@user-mac bin % deactivate
(base) user@user-mac bin %

장고 설치

  • 가상환경에서 장고 설치
    pip install django==버전
(가상환경이름) user@user-mac bin % pip install django==버전
  • 'You should consider upgrading via the 'python -m pip install --upgrade pip' command.' 경고문고가 뜨는 경우
(가상환경이름) user@user-mac bin % python3 -m pip install --upgrade pip

장고 프로젝트 생성

1. 프로젝트 모아둘 디렉터리 생성

(base) user@user-mac ~ % mkdir 디렉터리이름
(base) user@user-mac ~ % cd 디렉터리이름
(base) user@user-mac 디렉터리이름 % 

2. 가상환경 진입

(base) user@user-mac bin % source activate
(가상환경이름) user@user-mac 디렉터리이름 %

3. 장고프로젝트 생성할 디렉터리 생성

(가상환경이름) user@user-mac 디렉터리이름 % mkdir 장고프로젝트디렉터리
(가상환경이름) user@user-mac 디렉터리이름 % cd 장고프로젝트디렉터리
(가상환경이름) user@user-mac 장고프로젝트디렉터리 % 

4. 장고프로젝트 생성
django-admin startproject config .

(가상환경이름) user@user-mac 장고프로젝트디렉터리 % django-admin startproject config .

<장고프로젝트디렉터리 생성안하는 경우 프로젝트 생성하기>

(가상환경이름) user@user-mac 디렉터리 % django-admin startproject 장고프로젝트
  • 이런경우 장고프로젝트/장고프로젝트 처럼 똑같은 이름의 앱 디렉터리가 생성됨

5. 개발 서버 구동
python manage.py runserver

(가상환경이름) user@user-mac 장고프로젝트디렉터리 % python manage.py runserver

장고프로젝트 초기 설정

1. 사용하지 않는 기능 주석처리

INSTALLED_APPS = [
    # 'django.contrib.admin',
    # 'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    # 'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
  • settings.py에서 admin, auth, crsf 등 사용하지 않는 기능 주석처리

2. corsheaders

1) [corsheaders 플러그인 설치]

pip install django-cors-headers

2) settings.py에 추가

INSTALLED_APPS = [
    # 'django.contrib.admin',
    # 'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    # 'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'corsheaders.middleware.CorsMiddleware',
]

DEBUG = False

ALLOWED_HOSTS = ['*']

3. DATABASE, SECRET_KEY 관리용 파일 생성

1) my_settings.py 안에 db, 시크릿 키 정보 담기

MY_SECRET = {
    '시크릿키'
}

MY_DATABASES = {
     'default': {
        'ENGINE': '',
        'NAME': '',
    }
}

2) settings.py에 import하여 추가

from .my_settings import *

SECRET_KEY = MY_SECRET['SECRETE_KEY']
DATABASES = MY_DATABASES

3) .gitignore에 추가

### Django ###
*.log
*.pot
*.pyc
__pycache__/
db.sqlite3
db.sqlite3-journal
my_settings.py

[참고자료]

점프 투 장고

Django project 초기설정

0개의 댓글