[Django] Django 기초

Updated:

Intro

멋쟁이 사자처럼 동아리 활동을 하며 공부한 이론들과 실습 내용을 정리해보겠습니다. 본 학습 진행하려면 Git Bash와 Python, VSCode를 미리 설치를 해야합니다.

개발환경 셋팅

  • 가상환경 설정

    가상환경(Virtual Environments)이란?

    파이썬으로 프로젝트를 진행하면서 패키지를 설치하게 되는데 여러 개의 프로젝트를 개발할 때는 이 패키지의 버전 문제가 발생할 수 있습니다. 이런 문제를 해결하기 위해 파이썬에서 제공하는 것이 가상 환경 입니다. 가상 환경은 각각 독립된 공간으로 어려 프로젝트 관리가 가능합니다. 가상 환경에 pip로 패키지를 설치하면 현재 가상 환경에 설치된 패키지를 사용하므로 버전 문제가 발생하지 않습니다.

  • pip 패키지

    pip 패키지는 파이썬으로 작성된 패키지 소프트웨어를 설치, 관리하는 패키지 관리 시스템입니다. Django는 pip 패키지 중 하나 입니다.


  • 폴더 생성 > VSCode > Open folder > Terminal > New Terminal > bash 로 설정

    (폴더에서 터미널 실행 후 code . 명령어 입력)

    code . 명령어를 입력 했을 때 ‘zsh: command not found: code’ 오류가 발생한다면 Git bash 사용하기를 참고해주세요.

    11


가상 환경 생성

  • Mac OS / Linux인 경우

      pyhton3 -m venv <가상환경 이름>
    
  • Windows 10인 경우

      pyhton -m venv <가상환경 이름>
    

python -m venv <가상환경 이름=""> 명령어를 치니 아래와 같은 오류가 발생하였습니다.

/System/Library/Frameworks/Python.framework/ Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named venv

저는 Windows 가 아니라 Mac OS 를 사용하는데 Windows 명령어를 사용하여서 발생한 오류였습니다. python3 으로 변경하니 가상환경이 잘 생성 되었습니다.


가상 환경 활성화

  • Mac OS / Linux인 경우
source <가상환경 이름>/bin/activate
  • Windows 10인 경우
source <가상환경 이름>/Scripts/activate

12

  • 가상 환경 비활성화
decativate


Django 설치

  • 가상환경을 활성화 한 상태에서 설치해야 합니다.

  • 설치 명령어

pip install django

13

  • 삭제 명령어
pip uninstall django

Django 기초

Project

  • 장고 프로젝트 생성

  • 여러 파일들이 생성

  • manage.py 를 가지고 서버를 작동 시킴

App

  • 프로젝트의 구성 단위

  • manage.py가 있는 폴더에 생성 추천

  • 앱을 만든 후 프로젝트에 알려줘야함 -> 프로젝트의 settings.py에 연결될 앱을 알려주기


  • settings.py -> templates -> views.py -> urls.py 순으로 연결
  1. Django 프로젝트 생성

    • 프로젝트 생성 명령어
     django-admin startproject <프로젝트 이름(파일명)>
    
  2. App 생성

    • App 생성 명령어
     python manage.py startapp <앱 이름>
    
  3. settings.py 수정

     INSTALLED_APPS = [
         ...
         '<앱 이름>.apps.<대문자로 시작하는 앱 이름>Config',
     ]
    

    INSTALLED_APPS 에 추가 생성된 앱 폴더에 apps.py 파일을 열어보면 <대문자로 시작하는="" 앱이름=""> + Config 클래스가 정의되어 있음, 그 클래스명을 적어주기

    23

  4. App 안에 templates 폴더 생성

    • template 폴더 > html 파일 작성 사용자에게 보여질 화면들(html)을 생성해야 함
  5. views.py

    • html이 언제 어떻게 처리될지, 데이터를 처리하는 함수 작성
  6. url.py

    • 어떤 url을 입력했을때 어떤 html을 뜨게 할지 결정

    • 요청에 맞는 함수를 views.py에서 찾아 요청 전달

     import <앱 이름>.views
        
     ...
    
     path('', <앱 이름>.views.<함수 이름>, name="<페이지 이름>"),
    
    
  7. 서버 작동

    • 서버 실행 명령어
     python manage.py runserver
    

    18

    • 서버 종료 명령어

      control + c 입력

Hello World 띄우기

  1. 가상환경 활성화

     source myvenv/bin/activate
    
  2. Django 프로젝트 생성

    • 프로젝트 생성 명령어
     django-admin startproject myproject
    
  3. App 생성

    • App 생성 명령어
     python manage.py startapp myapp
    
  4. settings.py 수정

     INSTALLED_APPS = [
         ...
         'myapp.apps.MyappConfig',
     ]
    

    14

  5. App 안에 templates 폴더 생성

    • templates > home.html 파일 생성 후 내용 작성

    15

  6. views.py

    • request가 들어오면 home.html을 반환해 주는 home 함수 작성

    16

  7. url.py

    • myapp.views import 와 path 입력
     import myapp.views
        
     ...
    
     path('', myapp.views.home, name="home"),
    

    19

  8. 서버 작동

    • 서버 실행 명령어
     python manage.py runserver
    

    17

Leave a comment