Django Project Setting

LILO Ghim·2021년 11월 13일
0

Django setting for C.R.U.D.


가상환경생성(conda) > 필요한 모듈 설치 > database 세팅 > 깃 시작 > models.py(python code 작성) > python shell & Mysql


가상환경 생성(conda)

    
    # 가상환경 생성 & 모듈 설치
    
    conda create -n "name" python  = 3.8
    
    conda activate "name"
    
    pip install django
    
    pip install PyMySQL 	# (=pip install mysqlclient) 
    
    pip install django-cors-headers
   
  
    # Database 생성
    
    mysql -u root -p
    
    mysql > create database NAME character set utf8mb4 collate utf8mb4_general_ci;
    
    
    # Django Project 생성
    
    cd Desktop
    
    django-admin startproject "name"
    
    cd "name"
    
    
    >> server 확인 <<
 
    python manage.py runserver
 

DATABASE setting | APPS, Urls, Database, CORS

* settings.py 설정(vscode내 생성된 project 폴더 내 settings.py에서 실행) *

 
 ALLOWED_HOSTS = ['*']      			# all
 
 
 #주석처리
 
 INSTALLED_APPS = [
 # 'django.contrib.admin',
 # 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'westarbucks',					# app 생성 후 추가
 'corsheaders',					# app 생성 후 추가
 'products',					# app 생성 후 추가
]


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'
]


# project_file/urls.py를 수정

from django.urls import path

urlpatterns = [

	# path('admin/', admin.site.urls),
]


# my_settings.py 생성하여 작성

---------------------------
cd "새로 생성한 폴더명"
touch my_settings.py
---------------------------

# my_settings.py 파일에 작성할 내용

SECRET_KEY = 'settings.py에 있는 secret_key'

DATABASES = {
 'default': {
     'ENGINE': 'django.db.backends.mysql',
     'NAME': 'westarbucks',  	# mysql database 생성시 작성한 이름
     'USER': 'root',
     'PASSWORD': 'password',	# mysql database 생성시 작성한 패스워드
     'HOST': '127.0.0.1',
     'PORT': '3306',
     'OPTIONS': {'charset': 'utf8mb4'}
 }
}


# settings.py <-> my_settings.py 연동


from pathlib        import Path
from my_settings    import DATABASES, SECRET_KEY

import pymysql

pymysql.install_as_MySQLdb()     # M1

DATABASES = DATABASES            # my_setting.py와 연동
SECRET_KEY = SECRET_KEY		 # my_setting.py와 연동
 
 
 
** corsheader 설정 **

--------------------------------------------------------------
pip install django-cors-headers 	# 초기 세팅시 했다면 pass
--------------------------------------------------------------


# settings.py -> INSTALLD_APPS, MIDDLEWEAR 안에 추가

INSTALLED_APPS = [

...
'corsheaders',
...

]


MIDDLEWARE = [

...
'corsheaders.middleware.CorsMiddleware'
...

]

# 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',
)

git initial push & Django app start


git init

# .gitignore

cd "project folder name"
touch .gitignore
vi .gitignore

my_settings.py #추가작성

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


# github repository 생성

git branch -M main 	# master를 main으로 변경 
git remote add orgin repository 주소
git push orgin main     # main branch로 push


# branch 생성

git branch feature/crud
git checkout feature/crud

#git checkout -b feature/crud    생성과 동시에 이동



** Application 생성 **

>> Django app 시작하기
-------------------------------------
python manage.py startapp "app_name"
-------------------------------------

#settings.py에 app 추가

INSTALLED_APPS = [

...
'app_name',

]

git add .
git commit -m "Add: products application"
git push origin "브랜치이름"

models.py(model calss -> database table과 mapping, ORM) setting 후

python manage.py shell				#python shell 시작
python manage.py makemigrations "app_name"
python manage.py migrate

from "app".models import *
-> data 생성


> MySql 데이터 확인

```python 

mysql -u root -p

show databases;
USE database_name;
SHOW tables;
DESC table_name;
SELECT * FROM table_name

git Push


 ** github에 브랜치 push **

git add .
git commit -m "커밋 메시지"
git push origin "브랜치"


--------------------------------------
브랜치 -> main 브랜치로 pull request 보낸다
--------------------------------------


git pull orgin main








  
	    
   
profile
킴릴로

0개의 댓글