https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

https://www.anaconda.com/

 

Anaconda | The World's Most Popular Data Science Platform

Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.

www.anaconda.com

프로젝트를 시작하기 전에, 나는 VSCode와 아나콘다를 사용했다. django를 시작 할 정도면 환경구축은 다 했을거라 생각하지만 모르는 사람, 아니면 새로운 환경에서 시작하는 사람들을 위해 자세한 글이 있는 링크를 남긴다.

https://teang1995.tistory.com/16

 

[ Python 개발 환경 구축 ] windows 에 Anaconda, VSCode 이용한 python 개발환경 구축

말해 뭐해! 매번 구글링하기 싫어 기록해두려 한다. 1. Anaconda 설치 https://www.anaconda.com/products/individual 위 링크에 접속한 뒤, individual Edition을 설치 후 실행. 그럼 위와 같은 창이 뜰 텐데,..

teang1995.tistory.com

 

 

이제 프로젝트를 시작할 새로운 디렉토리를 vscode를 통해 열고 ctrl + ` 을 통해 터미널을 열고

conda create -n <환경이름> python=3.8

아나콘다를 사용하여 새로운 가상환경을 생성한다.  나는 python 버전을 3.8로 설정하였다.

conda activate <환경이름>

이후 생성한 가상환경을 활성화한다. 정상적으로 활성화 됐다면 사진과 같이  (환경이름) 현재 폴더 경로> (커서) 가 될 것이다.

conda install pip
pip install django
django-admin startproject <프로젝트 명>

conda를 통해 pip을 설치하고, pip을 통해서 django를 설치한다. 이후를 생각하면 pip을 이용하는 것이 보편적이기 때문이다. django-admin startproject를 터미널에 입력해

 이렇게 <프로젝트 명> 폴더 안에 또 <프로젝트 명> 폴더와 py 파일들, 상위 폴더에 manage.py가 생성된 것을 확인 할 수 있다. 간혹 permission error가 뜨는 경우도 있는데, 그럴때에는 vscode를 관리자 권환으로 실행하면 된다. 이제는 이 프로젝트 안에서 모든 걸 할테니, 커맨드를 입력해 해당 디렉토리로 들어간다

cd <프로젝트 명>

 

이제 프로젝트를 시작할 준비가 되었으니 프로젝트 셋팅을 할 차례다.

 

 

제일 먼저 보이는 항목들이다. SECRET_KEY는 django 사이트 내에서의 보안과 깊숙히 관련되어있기 때문에 반드시 공개되면 안된다. 그렇기 때문에 github와 같은 공개 저장소에 올리기전에 파일로 분리하고 gitignore을 통해  숨기는 게 좋다.

JSON 파일을 만들어서 다음과 같이 저장하자

이후 settings.py에 이 SECRET_KEY를 불러오는 함수를 입력한다.

 

import os,json
from django.core.exceptions import ImproperlyConfigured

secret_file = os.path.join(Path(__file__).resolve().parent,'secrets.json')

with open(secret_file) as f:
    secrets = json.loads(f.read())

def get_secret(setting):
    try:
        return secrets[setting]
    except KeyError:
        error_msg = "Set the {} environment variable".format(setting)
        raise ImproperlyConfigured(error_msg)

SECRET_KEY = get_secret("SECRET_KEY")

settings.py 와 같은 폴더에 secrets.json이 있다면 이 함수는 잘 동작할 것이다.

DEBUG와  allowed_hosts는 차후 django project가 완성된다면 고칠 것이다.

django는 한 프로젝트에 여러개의 app을 통해 구성된다. app을 생성할 때마다 위 세팅에 app 명을 입력해줘야한다. 당장 생성한 프로젝트 폴더도 앱이니 이 리스트에 프로젝트 명을 입력한다. 나는 홈페이지의 첫 화면을 mysite 앱을 통해 출력했기 때문이다. 그렇다면 잠시 홈페이지의 첫화면을 출력해보자. 지금은 구문이 이해가 안가더라도 차후에는 이해가 될것이다.

 

 

templates는 django 웹사이트에서 사용자에게 보여질 html을 뜻한다. template는 각각의 앱 폴더에 있기 보다는 하나의 template 폴더 내부에서 관리하는 것이 좋다. 따라서 모든 templates가 들어있는 폴더를 지정하고자 'DIRS' : [TEMPLATES_DIR] 이라 기입하여 사진과 같이 settings 을 바꾸고 templates 폴더를 생성한다.

TEMPLATES_DIR = os.path.join(BASE_DIR,'templates')

 

적당한 html, 나는 index.html에 HELLO WORLD 라고 적었다.

이후 파일들이 들어있는 mysite 내부에 views.py를 만들고

from django.shortcuts import render

def homeView(request):
    return render(request,'index.html')

라고 입력해준다.

이후 다시 urls.py로 들어가서

path('',homeView),

를 urlpatterns에 기입해준다. 이러면 간단한 준비는 끝났다.

python manage.py runserver

터미널에 위의 명령어를 입력해준다. runserver 외에도 많은 명령어들을 manage.py를 통해 이루어질 것이다. runserver는 개발단계에서 웹서버를 여는 명령어이다.

만약 문제가 없다면 아래와 같이 화면이 뜰텐데, 오류는 무시해도 좋다. 해당 주소를 클릭해 접속해보면

우리가 index.html에 쓴대로 HELLO WORLD가 출력되는 것을 볼 수 있다.

 

 

이후 여러개의 설정이 있지만 아직 바꿀 때가 아니다.  그 외에 시간설정을 다음과 같이 바꾼다.

 

settings에서 아주 기본적인 설정만 바꿨다. 이 이후에도 settings는 필요시마다 자주 수정하게 될 것이다.

복사했습니다!