[Django] Project Setting

2021. 8. 18. 20:49코딩일지/Django

1.  Django Project 초기 세팅

 

#가상환경 프로그램 : Anaconda, Miniconda, pip env 등등.. 

#저는 miniconda3로 만들겠습니다.

 

※ 가상환경 생성

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

conda activate "가상환경이름"

프로젝트 진행을 위한 새로운 가상환경을 생성합니다.

 

※ 데이터 베이스 생성

$ mysql -u root -p

mysql> create database 데이터베이스이름 character set utf8mb4 collate utf8mb4_general_ci;

 

※ 프로젝트 파이선 패키지 설치

$ pip install django

# pip install django시 django가 설치되어있다면 
$ conda install django

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

 

Django Project 생성

$ django-admin startproject Newprojects

$ cd Newprojects

 

Settings.py 설정 및 주석처리 (admin, csrf, auth)

#IP허용 

ALLOWED_HOSTS = ['*']

 

 

 

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

from django.urls import path

urlpatterns = [ ]

 

my_settings.py 생성 (DATABASES, SECRET_KEY)

  • 장고 설정에 존재하는 내용 중 SECRET_KEY, DATABASE 등은 소스로서 공유해야 하는 내용이 아닙니다. 별도의 파일 혹은 환경변수로서 관리하는게 좋습니다.
  • 별도의 참조용 파이썬 파일(my_settings.py)을 생성해서, 참조하는 방법으로 진행합니다.
cd '생성한 프로젝트 폴더명'

touch my_settings.py

 

※ (my_settings.py)파일에 실제 쓰여지는 내용

#NAME : mysql 새로만든 database 명
#USER : root
#PASSWORD : mysql접속 비밀번호

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

pip install PyMySQL

※ pymysql package 설치 후 settings.py에 추가

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

#django-cors-headers가 pip으로 이미 설치되어있다고 뜬다면

conda install -c conda-forge django-cors-headers

 

※ 설치했다면 settings.py에 INSTALLD_APPS, middleware을 추가해줘야합니다.

INSTALLED_APPS = [
	...
	'corsheaders',
]


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 파일에 기입해야합니다.

 

※ 프로젝트 서버 실행

python manage.py runserver

 

2.  Git & GitHub, Branch

 

# Git 게시물에 명령어와 순서를 참고하셔도 편합니다. https://woojuscodingroom.tistory.com/8

※ git 초기화

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

 

※ .gitignore 생성

  • 소스를 공유하기 위해 깃을 사용하지만 올리고 싶은것 올리고 싶지 않은것, 올려서는 안되는 것들이 존재합니다. 이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore파일을 생성해서 관리해야 합니다.

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

  • 다음의 키워드를 추가 후 Create 를 해주세요.(python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh)
  • Create한 내용들을 붙여넣기 위한 .gitignore 파일 생성
cd Newprojects

touch .gitignore

vi .gitignore
  • 내용 붙여넣기
############################
# gitignore.io 결과 전체 복사 #
############################

# 가장 하단 my_settings.py 추가하기
my_settings.py (보안 관련 파일은 github에 업로드되면 안됩니다.)

 

※ add & commit

git add .
git commit -m "commit할 메세지"

 

3. Branch

※ Branch 생성

git branch 브랜치 이름 # 브랜치 생성

git checkout 브랜치 이름 # 해당 브랜치로 이동 

# 생성과 동시에 이동하는 방법
git checkout -b 브랜치 이름

 

※ Application 생성

$ python manage.py startapp 앱폴더이름

  • settings.py 파일 installed_apps 추가
INSTALLED_APPS = [
	...
	'products',

 

※ Github remote, push 실행

  • add & commit
git add .
git commit -m "commit할 메세지"

# 여기까지는 로컬에 저장하는 과정이고, push를 통해 로컬 저장소의 작업을 원격 저장소에 업로드해야 합니다.
# 먼저 github 계정을 만들고 상단의 Repositories에서 new를 선택하여 push할 곳을 생성합니다.

Repositories에서 New를 눌러 새로운 저장소를 만드는 중
새로운 저장소 Url

  • Git remote 
git remote add origin "새로생성한 저장소의 url"

 

  • Github repository branch push
git push origin "브랜치 이름"

git push가 완료되어 github에 옮기기 성공!

 

Github로 가서 확인해보면 

testfile 브랜치로 연결된 저장소에 제대로 올려진것을 확인할수있습니다.

 

이상으로 Django project 생성하는법에 알아보았습니다. 

 

긴 글 읽어주셔서 감사합니다.

 

다음은 C.R.U.D의 이해와 실습으로 찾아뵙겠습니다.

 

'코딩일지 > Django' 카테고리의 다른 글

[Django] ManytoManyField  (0) 2021.08.26
[Django]C.R.U.D (3)  (0) 2021.08.26
[Django] C.R.U.D (2)  (0) 2021.08.21
[Django] C.R.U.D (1)  (0) 2021.08.19
[Django] Tutorials  (0) 2021.08.14