[DJANGO] 초기 셋팅
벌써 위코드 3주차! 벌써 수요일이다. 공부할 양은 많음에도 시간은 야속하게도 너무 빨리 가는 듯하다.😿
이제 막 이가 자라나는 중이라 이것저것 씹어보게 된다. 과제를 진행하다보면 궁금한 것들이 생기고, 지나칠 법도 한데 자꾸 거기에 묶여서 진도를 나가기가 힘들다. 그래도 이게 다 자산이 되겠거니.. 생각해본다.
오늘은 장고를 시작할 때 초기셋팅에 대해서 포스팅 해보려 한다.
1. Django Project
(1) 가상환경 생성
미니콘다, mysql, 터미널 등등... 프로그램을 받는 것은 건너 뛰고 시작을 해보자.
장고를 시작하기에 앞서 필자가 입력한 $
, mysql>
부분은 프로그램에서 자동으로 나오는 부분이니 없다 생각하고 뒤에 명령어만 보면 된다.
가장 먼저 해야할 것은 가상환경 생성이다. 이는 터미널로 생성할 수 있다.
이 가상환경은 독립적인 패키지의 관리를 위해 사용하는 것으로 프로젝트마다 새로운 가상환경을 생성해주는 것이 좋다.
$ conda create -n wecode python=3.8
# wecode = 프로젝트 이름, python=python 버전
$ conda activate weode
# 가상환경 활성화
python version
의 경우 각 프로젝트별로 맞는 버전을 입력해주면 되고, 위코드에서 진행되는 것들은 3.8 을 사용하면 된다고 한다. 필자같은 경우엔 자꾸만 실수를 하게 되는 부분이 있었는데 그것이 무엇인고 하니..
python = 3.8
.. 띄어쓰기가 습관이 되어버렸다. 여기엔 띄어쓰기가 들어가면 안 된다.
(2) Project Python Package 설치
jdnago packagee
설치
$ pip install django
# 장고 설치
$ pip install mysqlclient
# 이후에 MySQL에 접속하기 위한 package
# -> MySQL이 설치되어 있는지 먼저 확인하는 것이 중요함!
# 혹시 "gcc" 라는 에러가 발생한 경우 (Mac)
$ xcode-select --install
# 설치가 완료 됐다면 다시 위의 mysqlclient 설치
$ pip install django-cors-headers
# corsheaders 설치
xcode는 개발환경 구성을 위한 커맨드라은 도구를 포함하고 있다.
이를 설치하는 것은 번거롭기 때문에 명령어라인 도구만 설치를 한다. 이렇게만 설치를 해도 시간이 꽤나 걸리게 된다.
이에 관한 설명이 좀 더 필요하다면 xcode를 눌러보자.
(3) 데이터베이스 생성
이렇게 만든 가상환경을 실행을 하고 나면 데이터 베이스를 실행해준다.
이 데이터베이스는 계속 사용하고 볼 것이기 때문에 창을 따로 열어서 해주면 좋다. 커맨드 + D
를 누르면 창이 분할되어 하나 더 생긴다.
이렇게 분할시킨 터미널 내에서
$ mysql.server start
# mysql server를 켜준다.
$ mysql -u root -p
# mysql 시작 -u = user, -p = password
여기까지 하게 되면 비밀번호를 입력하라고 뜬다.
Enter password:
이 때 네트워크에 지정된 비밀번호를 입력하여 접속을 한 후에 데이터베이스를 생성해주면 된다.
mysql> CREATE DATABASE wecode_assignment CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# wecode_assignment 부분은 생성하고자하는 데이터베이스 이름
이렇게 생성된 데이터베이스는 어떻게 볼 수 있는가?
mysql> SHOW databases;
혹시라도 아래와 같은 상황이 일어났다면 여기를 참고해보자
이 데이터베이스를 사용하겠다는 명령어는 간단하다.
mysql> USE wecode_assignment
설명하지 않아도 보이는 것 그대로 wecode_assignment
라는 저장공간을 사용하겠다는 말이다.
(4) Django Projects 생성
데이터베이스까지 완료가 되었다면 장고 프로젝트를 생성해주어야한다.
이 때 선택사항으로 폴더를 하나 만들고 그 안에 .
을 붙여서 프로젝트를 만들어주면 좋다.
$ midir project && cd project
# project 라는 폴더를 만들고 그 폴더로 바로 진입한다.
$ django-admin startproject assignment .
# 생성된 폴더 안에 assignment 라는 이름의 프로젝트를 만든다.
# .이 없으면 assignment라는 이름의 폴더 안에 assignment라는 폴더가 또 생김
$ ls
# assignment 라는 이름의 폴더가 잘 만들어졌는지 확인한다.
$ cd assignment
# assignment 폴더로 들어간다.
(5) Settings
assignment
가 생성이 잘 됐고 잘 들어갔다면 안에 Settings.py
라는 파일이 만들어져 있을 것이다.
이 파일은 터미널 내에서 열어도 되고 그냥 vscode로 열어도 된다. 어느쪽이든 본인이 편한 것을 선택하면 된다. 터미널의 기본 명령어가 기억이 안 난다면 확인해보자.
혹 vscode에서 연다면 그냥 vscode를 실행시키고 폴더를 열어도 되고,
vscode 내에서 커맨드 + shift + P
를 누르고 >install code
를 입력하고 클릭하면 설치가 되는데, 이 후에 터미널에서 원하는 폴더까지 들어간 후 $ code 원하는 파일 혹은 폴더명
을 입력하면 vscode로 열리게 된다.
필자의 경우는 $ code .
을 사용한다.
- IP 허용
ALLOWED_HOSTS = [] -> ALLOWED_HOSTS = ['*']
# 호스트를 모두 허용해준다.
- 주석처리 + 내용추가
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders' # 추가부분
]
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', #추가부분
]
...
# 추가부분
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',
)
admin 부분은 사용하지 않을 것이기 때문에 주석처리 하였다.
corsheaders를 설치하였기 때문에 해당 내용들은 추가해준다.
assignment/urls.py
from django.urls import path
urlpatterns = [
]
기본으로 설정되어 있던 admin 부분은 사용하지 않을 것이기 때문에 삭제한다.
my_settings.py
생성
이 my_settings.py 안에는 장고 설정에 존재하는 내용 중 보안성이 있거나, 공유되면 안 되는 내용들을 넣어준다. 파일명은 상의하여 정하면 되고, 이는 후에 깃허브에 올리지 않고, 같이 일하는 팀원끼리 개인적으로 공유가 되어야한다.
기존에 생성했던 폴더인 project 안에 파일을 만들어준다.
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 연동
settings.py 에서 작업
from pathlib import Path #기존에 settings.py 에 있는 코드
from my_settings import DATABASES, SECRET_KEY
...
DATABASES = DATABASES
SECRET_KEY = SECRET_KEY
- 프로젝트 서버실행
python3 manage.py runserver
혹시 오류가 뜬다면 manage.py 파일이 있는 폴더에 위치해 있는지, 오타가 있는 것은 아닌지 확인해보자.
Author And Source
이 문제에 관하여([DJANGO] 초기 셋팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ggwnag/DJANGO-초기-셋팅저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)