Developing

패스트캠퍼스 캐시백 챌린지 17일차 본문

Devops/Fastcampus 캐시백 챌린지

패스트캠퍼스 캐시백 챌린지 17일차

DEV_BLOG 2022. 5. 4. 19:34

 

수강 인증샷

 

 

백엔드 개발에 앞서 Django에 관한 기본적인 내용을 알려주시려고 Django tutorial 문서에 있는 polls app 만들기에 해당하는 클립을 만들어주셔서 그부분들을 모두 수강해주었다. 이전에 단기인턴할때 혼자서 Pycharm professional로 sftp방식으로 원격 서버에 연결하는법 찾아보고 아주 짧게 장고를 사용했던 기억이 남는데, 이 강좌에서는 VScode환경에서 진행하였다. 다만 환경 구축하는 방법을 따로 알려주진 않아서 알아서 찾아보면서 vscode로 구축하였고 기록으로 남겨보았다.(vscode써본 경험도 있고 장고도 아주조금 해본 경험이 있어서 크게 어렵지는 않았지만 이전의 다른수강생들은 이것때문에 불만이 있는 것 같았다.) 원래 3파트로 나뉘어져 있는 것을 한꺼번에 포스팅하려했지만 한번에 포스팅할정도의 양이 아닌 것 같아서 나누어서 할 예정이다.

 

 

 

 

 

 

VSCODE Django Setting

강의상에서는 vscode관련 부분은 skip해서 혼자 처리했던 기억을 되살리면...

 

  1. python의 pip 패키지 명령어를 사용하기 위해 path 설정이 필요하다.

⇒ windows 검색란에 “시스템 환경 변수 편집”을 입력한다.

⇒ 사용자 변수의 Path 항목을 더블 클릭한다.

⇒ python이 설치된 Scripts 폴더의 location을 새로만들기로 추가해준다.

   

  2. VSCODE의 Extension에서 python을 추가해준다.

 

  3. 다음과 같은 Command를 입력해 장고를 설치해준다.

python -m pip install Django

  4. Django가 잘 설치되었는지 확인한다.

python -m django --version

 

Django Project 생성하기

새로운 Directory를 만들어주고 VScode로 해당 폴더를 열어준뒤, VScode의 terminal란에서 다음과 같이 입력한다.

django-admin startproject mysite

 

개발 서버를 열어보는 명령어는 다음과 같다.

python manage.py runserver

 

 

 

Poll App 만들기(1)

튜토리얼에 설명이 잘 되어있다.

https://docs.djangoproject.com/ko/4.0/intro/tutorial01/

Django project에서 app을 생성해준다.

python manage.py startapp polls

 

 

그러면 구조는 이렇게 생겼을 것이다. mysite 내부에 mysite디렉토리가 있고 생성해준 polls 디렉토리가 존재하게 된다.

Polls/view.py 에서 다음과 같이 입력해준다.

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

Polls/urls.py에는 다음과 같이 설정되어있다.

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

이것의 의미는 polls/ 로 주소가 들어오면 views의 index함수로 연결시키겠다는 것을 의미한다.

 

 

mysite/urls.py 에서 다음과 같이 수정해준다. (polls.urls를 바라보도록)

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

 

한편 mysite/settings.py 에는 DB관련한 내용의 설정이 포함되어있다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

이 설정에서 원하는 DB를 설정해주면 된다.

 

 

Poll app으로 적합한 Quesion과 Choice 모델을 만들어주려고한다.

polls/models.py 에 다음과 같이 작성해준다.

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

models.py에서 클래스를 만들어줄때 Django의 Default model을 상속받아야한다.

각 Field를 만들어주었는데, 이때 Choice에 foreignkey를 두어서 어떤 질문에 대한 답변인지를 연결시킨 것이라 보면된다.

 

 

Project에 polls app이 있음을 설정하기위해 mysite/settings.py에서 앱의 구성 클래스를 참조할 수 있도록 해야한다.'polls.apps.PollsConfig'를 다음과같이 추가해준다.

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

이제 모델을 만들어주는 Command를 입력한다.

python manage.py makemigrations polls

 

 

polls/migrations 디렉토리에 가보면 DB Schema에 대한 내용이 추가되었음을 확인할 수 있다.

Django에는 Version Control Mechanism이 있어서 원하는 내용으로 갈아끼고 뺄 수가 있다.

이렇게 만들어진 스키마대로 DB에 형식을 정하여 지정해준 DB(sqlite)에 반영을 하고싶다면 다음과 같은 Command를 입력해주면 된다.

python manage.py migrate

 

 

 

https://bit.ly/3L3avNW

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

*본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.