TIL-037 | 꾸며줘 홈즈 project(1)_초기 세팅

🌈 "집 꾸미기" 클론 코딩 프로젝트를 시작하면서 Django 초기 세팅을 진행하였다.

Django 초기 세팅

1. 가상환경 설정 및 Django 설치

  • miniconda 를 사용하여 "homes"라는 가상환경을 생성하였다.
  • python version은 3.8로 설정.

    $ conda create -n homes python=3.8
    $ conda activate homes


  • Django를 설치 하고, 프로젝트를 생성하여 준다.
  • 프로젝트 생성시 끝에 . 을 붙여주어 디렉토리가 추가 생성되는 것을 방지한다.

    $ pip install django
    $ django-admin startproject homes .


2. Database 생성

  • 데이터베이스를 생성하기에 앞서 mysqlclient를 설치한다.

    $ pip install mysqlclient

  • mySQL에 로그인하여 homes DB를 생성한다.

    $ mysql -u root -p
    $ mysql> create database homes character set utf8mb4 collate utf8mb4_general_ci;


3. Django 설정

👉 settings.py

  • 모든 IP의 접근을 허용하도록 설정을 변경한다.

    ALLOWED_HOSTS = ['*']

  • corsheaders 설치

    $ pip install django-cors-headers

  • corsheaders 설치 후 INSTALLED_APPS & MIDDLEWARE 설정

    INSTALLED_APPS = [
        #  'django.contrib.admin',
        #  'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'corsheaders',
        'core',
        'users',
        'products',
        'orders',
        'carts',
    ]
    
    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',
    ]
  • setting.py의 최하단부에 CORS설정 추가 한다.

    CORS_ORIGIN_ALLOW_ALL=True
    CORS_ALLOW_CREDENTIALS = True
    CORS_ALLOW_METHODS = (
        'DELETE',
        'GET',
        'OPTIONS',
        'PATCH',
        'POST',
        'PUT',
    )
    CORS_ALLOW_HEADERS = (
        'accept',
        'accept-encoding',
        'authorization',
        'content-type',
        'dnt',
        'origin',
        'user-agent',
        'x-csrftoken',
        'x-requested-with',
    ) 

👉 my_settings.py

  • my_setting.py를 생성하여 아래와 같이 세팅한다.
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'homes,
        'USER': 'root,
        'PASSWORD': mySQL 비밀번호,
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {'charset': 'utf8mb4'}
    }
}
SECRET_KEY = [SECRET_KEY]
ALGORITHM = 'HS256'
  • my_settings 파일을 settings.py 에 import 한다.

    from pathlib    import Path
    from my_settings import DATABASES, SECRET_KEY, ALGORITHM

    SECRET_KEY = SECRET_KEY
    DATABASES = DATABASES
    ALGORITHM = ALGORITHM

👉 .gitignore

  • manage.py와 같은 계층에 .gitignore 파일을 생성한다.

  • "https://www.toptal.com/developers/gitignore" 에서 python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh 등을 생성하여 gitingore 파일에 붙여넣기 한다.

  • my_setting.py 파일 또한 .gitignore에 추가한다.

✅ 서버를 작동하여 초기 세팅에 문제가 없는지 확인한다.

$ python manage.py runserver


4. requirements.txt

  • Project를 진행하며 환경설정을 위해 설치한 모든 프로그램들을 requirements.txt에 작성한다.

  • 프로그램 설치할때 자동으로 설치되는 추가 프로그램들은 명시하지 않도록 한다.

    $ pip freeze 👉 설치된 프로그램들을 확인하는 명령어

  • 아래와 같이 작성하도록 한다.

    Django==3.2.4
    django-cors-headers==3.7.0
    mysqlclient==2.0.3
    bcrypt==3.2.0
    jwt==1.3.1
    PyJWT==2.3.0

좋은 웹페이지 즐겨찾기