TIL.24 Django Project Setting(Server & Database)
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 생성
-
Branch 생성
-
feature/crud
브랜치를 생성 & 이동git branch 브랜치 이름 # 브랜치 생성 git checkout 브랜치 이름 # 해당 브랜치로 이동 # 생성과 동시에 이동하는 방법 git checkout -b 브랜치 이름
-
-
Application 생성
-
settings.py 설정 후 app 생성
$ python manage.py startapp products
-
settings.py installed_apps 추가
# settings.py INSTALLED_APPS = [ ... 'products',
-
-
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
-
-
Author And Source
이 문제에 관하여(TIL.24 Django Project Setting(Server & Database)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tkddnd82/TIL.24-Django-Project-SettingServer-Database저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)