TIL.24 Django Project Setting(Server & Database)

12365 단어 TILTIL

Django Project 초기 세팅

  • 가상환경 생성

    프로젝트마다 독립적인 패키지의 관리를 위해 새로운 가상환경을 생성해서 사용하도록 한다.

    # 가상환경 생성
    conda create -n "가상환경 이름"
    conda activate "가상환경 이름"
  • Database 생성

    $ mysql -u root -p
    
    mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;
  • Project Python Package 설치

    pip install django
    
    # 이후에 MySQL server에 접속하기 위한 package
    pip install mysqlclient
      (중요) mysql 설치되어 있는지 먼저 확인해주세요
  • Django Project 생성

    django-admin startproject westarbucks
    cd westarbucks
  • Settings.py 설정

    • IP 허용

      ALLOWED_HOSTS = ['*']
    • 주석처리 (admin, csrf, auth)


(중요) 추가로 westarbucks/urls.py를 아래와 같이 수정해주세요.

    ```python
    from django.urls import path

    urlpatterns = [
    ]
    ```
  • my_settings.py 생성 (DATABASES, SECRET_KEY)
    - 장고 설정에 존재하는 내용 중 SECRET_KEY, DATABASE 등은 소스로서 공유해야 하는 내용이 아닙니다. 별도의 파일 혹은 환경변수로서 관리하는게 좋습니다.
    - settings.py에 바로 저장되는 방식은 지양해야 합니다.
    - wecode 에서는 별도의 참조용 파이썬 파일(my_settings.py)을 생성해서, 참조하는 방법으로 진행합니다.

    ```bash
      cd '생성한 프로젝트 폴더명'
      touch my_settings.py
      ```
    • 파일에 실제 쓰여지는 내용

      
      DATABASES = {
          'default' : {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'DATABASE 명',
              'USER': 'DB접속 계정명',
              'PASSWORD': 'DB접속용 비밀번호',
              'HOST': '127.0.0.1',
              'PORT': '3306',
          }
      }
      
      SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 를 사용합니다.
  • settings.py ↔ my_settings.py 연동

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

    ```bash
    pip install PyMySQL
    ```
    
    - pymysql package 설치 후 settings.py에 추가
    
    ```python
    from pathlib        import Path #기존에 settings.py 에 있는 코드
    from my_settings.py import DATABASES, SECRET_KEY
    
    import pymysql
    
    pymysql.install_as_MySQLdb()
    ```
    • corsheaders

      pip install django-cors-headers
      • 설치했다면 settings.py에 INSTALLD_APPS 안에 추가해줘야합니다.

        INSTALLED_APPS = [
        ...
        		'corsheaders'
        ]
      • middleware도 추가해야합니다.

        MIDDLEWARE = [
        	...
        		'corsheaders.middleware.CorsMiddleware',
        	...
        ]
      • 마지막으로 허용할 값을 정의 합니다.

        #REMOVE_APPEND_SLASH_WARNING
        APPEND_SLASH = False
        
        ##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',
        		#만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 됩니다.
        )

        모든 내용은 settings.py안에 기록되야 합니다.

  • 프로젝트 서버 실행

    • 서버 동작(Runserver)을 통한 오류 검증

      python manage.py runserver

#:: Git & Github

  • git 초기화

    • 생성한 장고 프로젝트를 git으로 관리할 수 있도록 초기화 한다.
      - manage.py 가 위치한 곳으로 이동
      - git init 명령어로 git 초기화

      git init
  • .gitignore 생성
    - 코드를 공유하기 위해서 깃을 사용하지만 올리고 싶지 않은것이나 올려서는 안되는 것들이 존재한다. 이를 구분하기위해 깃이 설치된 디렉토리에 .gitignore 파일을 생성해서 관리한다.

    • 아래 사이트에서 사용하는 환경에 해당하는 키워드를 선택하면, 자동으로 .gitignore 파일에 정의할 요소들을 생성 해줍니다.

      https://www.toptal.com/developers/gitignore
      
      - 아래 키워드를 추가 후 Create.
      
          > python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh
      
      - Create 하여 나온 내용을 `.gitignore` 파일 생성 후, 붙여넣기

      *키워드 잘 입력해서 요소들 생성하기 ! 몇가지를 뺴놓고 했더니 아주 올리지 않으려고한
      my_setting가 올라가고 아주 엉망이었다. 주의하자!ㅇ

      ```bash
      cd '프로젝트 폴더명'
      touch .gitignore
      vi .gitignore
      
      ############################
      # gitignore.io 결과 전체 복사 #
      ############################
      
      # 가장 하단 my_settings.py 추가하기
      my_settings.py (보안 관련 파일은 github에 업로드되면 안됩니다.)
      ```
  • add & commit

    git add .
    git commit -m "Add: Django Project Setting"

Branch

  • Branch & Application 생성

    1. Branch 생성

      • feature/crud 브랜치를 생성 & 이동

        git branch 브랜치 이름 # 브랜치 생성
        git checkout 브랜치 이름 # 해당 브랜치로 이동 
        
        # 생성과 동시에 이동하는 방법
        git checkout -b 브랜치 이름
    2. Application 생성

      • settings.py 설정 후 app 생성

        $ python manage.py startapp products
      • settings.py installed_apps 추가

        # settings.py
        
        INSTALLED_APPS = [
        	...
        	'products', 
    3. Github Push

      • git add & commit

        git add .
        git commit -m "Add: products application"
      • Optional) git 상태 확인 : git status

      • Optional) git 상태 확인 : git status

      • Commit history 확인 : git log

      • Github repo 생성

      • github 사이트 → New repository

      • git_practice 폴더와 github repository 연동
        : git remote add origin repository주소

      • git push : git push origin main

좋은 웹페이지 즐겨찾기