TIL-031 | Django_Project Setting

4681 단어 TILdjangoTIL

🌈 Django

디자인 패턴 관련 지난 글 링크

  • 가상환경 생성(미니콘다)

    • 신규 프로젝트를 시작할 때 대부분 가상환경 생성을 진행 한다. 진행하는 프로젝트가 1개 뿐이라면 무관하겠지만, 다수의 프로젝트를 진행할 시 프로젝트의 시작시점, 목적 등에 따라 언어, 프레임워크의 버전이 다를 수 있기 때문에 버전 간 충돌을 예방하기 위함이다.

      conda create -n "가상환경 이름" python=3.8
      conda activate "가상환경 이름"

  • Database(mySQL) 생성

    • mySQL 실행하여 database를 생성한다.
    • character set을 utf8mb4로 지정할 경우 이모지의 입력이 가능해진다. 일반적이 많이 쓰이는 utf8은 이모지 사용이 불가능하다.
    • collation은 database에서 문자열을 정렬할때 어떤 문자들이 먼저올지를 결정하는 기준을 의미한다.(ex. ABCabc,AaBb...)
      collation은 utf8mb4_general_ci 이 기본값이다.

      $ mysql -u root -p

      mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;

  • Django 설치

    • 위에서 설정한 가상환경에 Django와 mysqlclient를 설치한다.

      $ pip install django

      $ pip install mysqlclient
      --> 이후 MySQL server에 접속하기 위한 package

  • Django 프로젝트 설정

    • 시작하고자 하는 프로젝트를 생성한 후 해당 디렉토리에 들어간다.

      $ django-admin startproject 프로젝트명
      $ cd 프로젝트명

  • settings.py 설정

    • IP 허용
      : 디버깅 모드에서 비어있는 ALLOWED_HOSTS 리스트는 ['localhost', '127.0.0.1', '[::1]'] 의미가 된다(로컬 호스트에서만 접속이 가능). 디버깅 모드를 끄면 지정한 호스트에만 접속할 수 있다.

      ALLOWED_HOSTS = ['*']

    • 주석처리
      : 잘 사용하지 않는 admin page 기능에 관련된 코드를 주석처리 한다.

      urls.py 의 내용도 수정!

      from django.urls import path
      
      urlpatterns = [
      ]
  • my_settings.py 파일 생성

    • manage.py 파일과 동일한 위치에 my_settings.py 라는 이름으로 파일을 생성한다.

    • settings.py 에서 노출되면 안되는 secret_key 에 대한 정보를 따로 관리하기 위함이다.

      $ touch my_settings.py

    • my_settings.py에 실제 쓰여지는 내용

      DATABASES = {
      'default' : {
      'ENGINE': 'django.db.backends.mysql',
      'NAME': 'DATABASE 명',
      'USER': 'DB접속 계정명',
      'PASSWORD': 'DB접속용 비밀번호',
      'HOST': '127.0.0.1',
      'PORT': '3306',
      'OPTIONS': {'charset': 'utf8mb4'}
      }
      }

      SECRET_KEY = '시크릿키'
      #settings.py에 있는 secret_key 를 작성한다.

    • setting.py 와 my_settings.py 연동

      from pathlib import Path #기존에 settings.py 에 있는 코드
      from my_settings import DATABASES, SECRET_KEY
      ...
      DATABASES = DATABASES
      SECRET_KEY = SECRET_KEY

  • corsheaders

    • CORS는 Cross Origin Resource Sharing의 약자이며, corsheaders는 Cross Domain 이슈를 해결하기 위해 서버의 헤더를 조작하는 기능을 하는 패키지이다.

      👉 django-cors-headers를 설치한다.
      $ pip install django-cors-headers

      👉 settings.py 설정

      INSTALLED_APPS = [
      ...
      'corsheaders'
      ]

      MIDDLEWARE = [
      ...
      'corsheaders.middleware.CorsMiddleware',
      ...
      ]

      👉 CORS 추가설정 : settings.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',
      )

  • 서버 구동 테스트

    $ python manage.py runserver

  • .gitignore 생성

    • https://www.toptal.com/developers/gitignore 접속하여,
      아래의 키워드 추가 한후 Create!

      python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh

    • create 하여 나온 내용 .gitignore 파일 생성 후 파일의 내용으로 붙여넣기 (.gitignore의 위치는 manage.py, my_settings.py 와 동일한 위치에 생성한다.)

    • 붙여넣기 한 내용 제일 아랫 부분에 "my_settings.py" 추가한다.

좋은 웹페이지 즐겨찾기