django 개발환경세팅

HYEONYI JU·2021년 4월 8일
3

멋쟁이사자처럼9th

목록 보기
1/2
post-thumbnail

Django란?

  • 웹서비스를 쉽고 빠르게 개발할 수 있는 툴을 제공하는 파이썬 프레임워크
    ✏️ 프레임워크란?
    개발하면서 자주 사용하고 반복적으로 사용하는 도구를 모은 라이브러리의 집합

터미널 기초 명령어

  • cd : 원하는 디렉토리로 이동하기 (change directory)
  • ls : 현재 터미널 위치의 디렉토리 경로 확인 (list segments)
  • pwd : 현재 자신의 디렉토리 경로 확인 (print working directory)
  • clear : 터미널 지우기

✔️ 저번에 만들었던 sns-project 파일을 VS Code에서 열어주세요.

기본 shell을 bash로 설정

  1. 기본 프로필 선택 (or 기본 셸 선택, select default shell) 클릭

    New Git Bash를 클릭하면 새로운 bash shell이 열립니다. 하지만 터미널을 실행했을 때 기본적으로 bash로 실행되도록 설정하기 위해 기본프로필선택을 클릭해 다음 내용을 진행합니다.
  2. Git Bash 선택
  3. 기존 터미널 창을 지우고 새로 열거나 새로운 터미널을 추가로 열면 bash로 뜹니다!

💡 Bash? Powershell?
Powershell보다 Bash는 전통적으로 개발 환경에 더 적합하기로 알려져있습니다. 운영진들은 작년부터 bash를 사용해와서 더 익숙합니다. bash와 powershell이 달라서 생기는 문제가 발생할 수도 있기때문에 bash로 환경을 통일하면 좋을 것 같습니다!

가상환경

가상환경이란?

  • 자신이 원하는 Python 환경을 구축하기 위해 필요한 모듈만 담아놓기 위한 환경 설정
    👀 우리는 아직 오랫동안 개발을 해왔거나 직접 배포하는 일이 많지 않기때문에 가상환경의 필요성이 잘 와닿지 않을 수 있습니다. 대표적인 사례로 간략히 설명드리자면, 프로젝트를 개발하면서 우리는 여러가지 패키지들을 설치하게 됩니다. 시간이 지나면서 패키지의 버전이 바뀌게 되는데, 예전 프로젝트에서 사용하던 버전과 달라져 충돌이 일어날 수 있습니다. 그렇기때문에 프로젝트별로 가상환경을 만들어 관리합니다. 가상환경에는 여러 종류가 있는데, 그 중에서도 우리는 pipenv라는 가상환경을 사용하겠습니다.
  1. pipenv 설치
  • $ pip install pipenv(윈도우)
  • $ pip3 install pipenv(맥)

✏️ pip란?

파이썬 패키지 라이브러리들을 관리해주는 시스템.
pip를 활용하여 여러가지 패키지들을 설치할 수 있습니다.
pip는 파이썬 3.4 이후 버전에는 기본적으로 포함되어 있어 별도로 설치할 필요가 없습니다.

  1. 가상환경 생성 및 접속
  • $ pipenv shell

가상환경에 접속하고, 없다면 가상환경을 생성하고 접속합니다.

Django 시작

1. django 설치

  • $ pip install django (윈도우)
  • $ pip3 install django (맥)

2. 프로젝트 파일 생성

  • $ django-admin startproject sns_project

💡 'sns_project'라는 이름의 프로젝트 파일을 생성합니다. 프로젝트 파일과 동일한 이름의 폴더도 함께 생성이 됩니다.
우리는 이미 'sns-project'라는 폴더를 만들었기 때문에 프로젝트 파일과 동일한 이름의 폴더가 생겨도 문제가 되지는 않지만 굳이 필요한 상황은 아닙니다.
만약 프로젝트 이름의 폴더없이 프로젝트 파일만 생성하고 싶다면 django-admin startproject [프로젝트 이름] . 을 사용하면 됩니다.
폴더가 많은 것이 복잡하다면 미리 폴더를 만들지 말고 django-admin startproject [프로젝트 이름] 을 사용하거나 , 폴더를 만들고 django-admin startproject [프로젝트 이름] . 을 사용하면 됩니다. 앞으로 과제 프로젝트나 다른 프로젝트시 참고해서 사용해주세요!

django project를 생성하면 만들어지는 다양한 파일들

  • manage.py : app을 생성, 서버 실행, 데이터베이스에 관한 작업을 하는 파일
  • settings.py: 프로젝트의 환경 및 구성에 대한 설정이 있는 파일. app생성 후 이곳에서 등록하고, 앞으로 배울 stati file, database 설정을 이곳에서 할 수 있습니다.
  • urls.py: 유저가 접근하는 웹사이트의 url과 view의 연결을 지정해줍니다.

(참고)

  • __init__.py: 빈 파일
  • asgi.py: 웹서버, 프레임워크, 앱을 연결해주는 역할 (Asynchronous SErver Gateway Interface)
  • wsgi.py: 웹서버와 Django간의 통신 역할의 통신 역할(Web Server Gateway Interface)

3. 프로젝트 안으로 이동

  • $ cd sns_project

💡 서버를 실행하거나 app을 생성하기 위해서는 터미널에서 현재 경로에 manage.py가 있어야합니다. 그 manage.py가 sns_project안에 있기 때문에 이동해주는 것입니다. 이동후 터미널에 $ ls를 입력하면 manage.py가 있음을 확인할 수 있습니다.

구조
sns-project

┣--sns_project (이동 후 현재 경로)

┃ ┣--sns_project

┃ ┣--manage.py

4. settings.py 설정

  1. ALLOWED_HOSTS = ['*']
  • 프로젝트에 접근 가능한 호스트를 설정하는 부분입니다. *를 입력해 모든 사용자가 이용할 수 있도록 설정합니다.

다음으로 setting.py의 거의 마지막의 Internationalization 부분 설정을 해줄겁니다. 언어, 시간, 디버깅 등을 설정할 수 있는 부분입니다.

  1. LANGUAGE_CODE = 'ko-kr'
  • 한글 표기를 위해 ko-kr로 수정해줍니다.
  1. TIME_ZONE = 'Asia/Seoul'
  • 대한민국 시간대로 설정해주기 위해 Asia/Seoul로 수정해줍니다.
  1. USE_TZ = False'
  • 우리는 대한민국 시간대로 설정했으므로, 기본시간대 사용에 대한 여부는 False로 수정해줍니다.

4. app 생성

  1. python manage.py startapp main

main이라는 이름의 app을 생성합니다. 현재 경로에 manage.py가 있어야 합니다. ($ ls로 확인)

✏️app이란?
django 프로젝트를 이루는 작은 단위. 프로젝트 내에서 기능별로 개발할 수 있도록 app을 생성해 진행합니다.

  1. 프로젝트 파일에 있는 settings.py에서 app 등록하기
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'main',
]

프로젝트 파일에 있는 settings.py(sns_project>sns_project>settings.py)에 INSTALLED_APPS 가 있습니다. 우리가 만든 main app을 여기에 추가해줘야 해당 app을 인식합니다. main,로 추가해줍니다.

💡 , app이름 뒤에 붙여야하는 이유

,는 다음 줄에 새로운 앱을 추가할 때 붙여줘야합니다. 사실 맨 마지막 앱이라면 ,를 붙이지 않아도 에러가 발생하지는 않습니다. 하지만 미리 ,를 붙여두지 않으면 다음에 새로운 앱을 만들고 추가할 때 까먹는 경우가 많습니다. 따라서 새로운 앱을 추가할 때 편리하게 하기 위해서 미리 ,를 붙여둡시다!

5. 서버 실행

  • 서버 실행: python manage.py runserver
  • 서버 종료: Ctrl + C

여기까지 문제가 없는지 서버를 실행해봅시다. 현재 경로에 manage.py가 있어야합니다. ($ ls로 확인)
❗ 다음 오류 해결방법: python manage.py migrate
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

migrate에 대해서는 곧 모델링을 하면서 배우게 될 내용입니다. app에서 모델을 만들면 migration을 만들고 migrate를 통해 migration 내용대로 테이블을 생성해 데이터베이스에 저장합니다. 해당 오류는 migrate를 하지 않아 데이터베이스에 연동되지 않아 경고 메세지가 뜨는 경우입니다. 우리는 아직 모델을 만들지 않았지만, 장고에서 기본적으로 등록된 어플리케이션의 모델들이 생성되어 있기때문에 뜨는 메시지입니다. python manage.py migrate 을 입력하면 오류메시지가 뜨지 않습니다.

프로젝트 세팅과 app 생성까지 해보았습니다. 중간중간 커밋을 해줍시다!

  • $ git add .
  • $ git commit -m "project setting, add main app"
profile
병아리 삐약삐약

0개의 댓글