TIL-8. miniconda & django

solarrrrr·2021년 10월 17일
0

Today I Learned

목록 보기
8/74
post-thumbnail

아나콘다는 가상환경 제공툴이다.
수학과 과학 분야에서 사용되는 여러 패키지들을 묶어놓은
파이썬 배포판에 포함되어 있는 패키지 매니저이자 가상환경 관리 프로그램이라고 이해하면 된다.

미니콘다는 이름처럼 최소한의 패키지만을 포함한
아나콘다의 축소판이라고 생각하면 된다.

장고는 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는
파이썬 기반의 프레임워크이다.

오늘은 가상환경 미니콘다를 설치하고 장고를 세팅하는 부분까지
정리해 볼 예정이다.

일단 위코드에서는 아나콘다 말고 미니콘다를 사용해 백엔드 수업을 진행했다.
백엔드 수업을 위해 가상환경과 장고를 설치하고 mysql 세팅까지 완료해야 했는데 세팅 과정에 수많은 오류들이 있었는데 해결에만 몰두하다 보니
머릿속에서 모두 엉켜서 어떻게 해결했는지 기억이 잘 안 난다.
바로바로 메모해 두는 습관을 들여야겠다.

일단 큰 틀에서 세팅은 아래와 같이 진행했다.

  1. 미니콘다 설치
  2. 가상환경 만들고 활성화
  3. 가상환경에 장고 설치
  4. 가상환경에 pymysql
  5. 과제 프로젝트 관련 폴더를 만들고 깃으로 초기화
  6. 해당 폴더 깃허브와 연동 작업
  • mysql을 가상환경 밖에 home brew로 설치하기도 했는데
    커리큘럼상 이 작업이 먼저여서 좀 헷갈린다.
    가상환경 밖에 mysql이 설치돼 있어야
    가상환경 안에 pymysql 설치 및 사용이 가능했던 것인지.
    이 부분은 추후 확인 후 다시 수정해야겠다.

1. 미니콘다 설치
웹사이트에서 미니콘다를 받은 후 파일의 권한을 변경.

chmod +x Miniconda3-latest-MacOSX-x86_64sh # 다운받은 파일명

터미널 환경에서 명령어 실행.

./Miniconda3-latest-MacOSX-x86_64.sh

설치가 끝나면 miniconda3/bin 폴더로 이동 후,

./conda init zsh

명령어를 입력해 준다. zsh에 적용하기 위함이다.
그리고 zsh을 재실행해 주면 된다. (source ~/.zshrc 혹은 재실행)

이제 가상환경을 생성하고 활성화한다.

conda create -n 가상환경 이름 python=3.9.5 # 내 파이썬 버전
# 가상환경에 파이썬이 같이 깔린다.
conda activate 가상환경 이름

그다음 db를 생성해야 하는데..

2. mysql 설치

mysql -u root -p

이렇게 하면 mysql로 들어가서 프롬프트가 떠야 하는데
여기서 command 오류를 많이 봤었다.
아마 경로 설정에 대한 부분 때문에 문제가 발생했던 거 같은데
워낙 많은 오류들을 보고 처리하다 보니 기억이 가물하다.

vi ~/.zshrc

여기 들어가서 가장 밑에 경로를 추가해줘서 해결했던 것 같다.

이제 mysql> 이런 프롬프트가 보인다면 mysql에 접속이 된 것이고
여기서 databse를 만들어주어야 한다.

create database db명 character set utf8mb4 collate utf8mb4_general_ci;

이 명령어를 입력해 주면 db가 생성된다.

3. 다음으로 django 설치

control + z로 빠져나와서,

pip install django

그러면 장고가 설치되고 장고 프로젝트를 생성한다.

django-admin startproject westarbucks
# westarbucks는 첫 번째 백엔드 과제라서 그렇게 만들었다.

난 최상의 경로에 장고 프로젝트를 생성했고 (폴더 생성됨)
westarbucks라는 폴더에 들어가서 몇 가지 초기 세팅을 진행한다.

  • IP 허용
    ALLOWED_HOSTS = ['*']
  • 주석 처리(admin, csrf, auth)
  • westarbucks/urls.py 수정
from django.urls import path
urlpatterns = [
] # 안에 내용 지워주기
  • my_settings.py 생성(manage.py와 같은 경로)
    깃헙에 민감한 정보는 올라가면 안 되기 때문에 my_settings.py라고
    별도로 파일을 하나 만들어주고 거기에 민감 정보들을 담아둔다.
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명',
        'USER': 'DB접속 계정명',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {'charset': 'utf8mb4'}
    }
}
SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 를 사용

그리고 settings.py랑 연동시켜야 한다. (settings.py 수정)

from pathlib		import Path
from my_settings	import DATABASES, SECRET_KEY
...
DATABASES = DATABASES
SECRET_KEY = SECRET_KEY

자, 여기까지 하고 나서 다음 작업을 수행한다.

pip install PyMySQL # M1 맥북 사용자

M1을 사용한다면 이 작업을 해 줘야 한다고 들었다.

from pathlib		import Path
from my_settings.py	import DATABASES, SECRET_KET

import pymysql

pymysql.install_as_MySQLdb()

다음으로 corsheaders 추가

pip install django-cors-headers

설치한 후에 settings.py의 INSTALLD_APPS와 MIDDLEWARE에도
추가해 줘야 한다.

INSTALLED_APPS = [
...
		'corsheaders'
]
MIDDLEWARE = [
	...
		'corsheaders.middleware.CorsMiddleware',
	...
]

그리고 가장 아래쪽에 CORS 추가 설정을 해 준다.

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

이제 서버 동작을 해서 오류가 나는지 살펴보면 된다.

python manage.py runserver

깃 초기화 및 세팅하는 5, 6번 작업은 아래 링크로 대체

https://velog.io/@solarrrrr1010/git%EA%B3%BC-github

git을 활용할 때 .gitignore를 생성해야 한다.
푸시할 때 내 개발한 작업물들이 깃허브로 올라가게 되는데
프로젝트 디렉토리 자체가 연동되어 있기 때문에
올리고 싶지 않거나 올라가지 않아야 할 파일들을 (ex> my_settings.py 등) .gitignore에 적어두면 푸시할 때 올라가지 않게 된다.

먼저 gitignore.io라는 사이트에 가서
올리지 않을, 제외할 키워드들을 추가한 후 create를 눌러
소스 코드를 얻어내자.

  • python, pycharm, visualstudiocode, visualstudio, vim, macos, linux, zsh 등등

프로젝트 디렉토리 내에 (manage.py와 같은 경로) .gitignore 파일을
생성한다.
확장자 없이 그냥 파일명만 만들면 되는데 앞에 닷(.)은 숨김파일이란 뜻이다.
여기에 아까 얻은 소스 코드를 붙여넣기 하고
맨 마지막에 my_settings.py도 적어준다.
보안 관련된 파일은 절대 깃허브로 올라가면 안 된다.

이후 아래처럼 해 주면 끝.

git add .
git commit -m "1차 프로젝트 시작"


깃 관련 명령어 몇 가지 정리

branch 생성

  • git branch 브랜치 이름 # 브랜치가 생성됨
  • git checkout 브랜치 이름 # 로컬 터미널에서 작업 시 해당 브랜치로 이동된다.
  • git checkout -b 브랜치 이름 # 위 두 가지 동작을 동시에

Application 생성

  • python manage.py startapp products

이렇게 하면 프로젝트 디렉토리 안에 products라는 디렉토리가 생성된다.
이곳에서 db와 연동할 models.py 제작이나 view 등의 작업을 진행하게 된다.

  • app 생성 이후 반드시 settings.py에 등록

settings.py의 INSTALLED_APPS에 꼭 app 이름 등록해야 한다.

git push

  • git add .
  • git commit -m "코멘트"
  • git push origin 브랜치 이름

이때 에러가 날 수 있는데, 내 레파리토리 주소를 origin에 등록하지 않았다면 아래와 같이 해 주면 된다.

  • git remote add origin 레파지토리 주소
profile
몰입

0개의 댓글