백엔드/django

[SGC]02_Django설치 및 프로젝트 생성

묘걍 2024. 1. 26. 23:55

1️⃣ Python 패키지 pip 업그레이드

  • pip: Python Install Package의 약자
  • PyPI(Python Package Index)의 SW 패키지를 사용하기 위한 명령어
    • SW가 모여있는 덩어리
    • 그곳에서 내가 필요한 SW를 내 Local에 송출(?)하려고 할 때 사용
  • 여기서는 장고를 설치하기 위해 사용한다

🎮 업그레이드

출처: SEOUL G-캠프 유튜브

  • pip툴은 파이썬을 설치하면 기본적으로 설치되어 있다
  • 그래서 업그레이드만 하는 방법임

🎮 버전 확인하기

23.3.2버전 설치되어있음

2️⃣ Django설치하기

  • Django 프레임워크는 다른 프레임워크(Spring, Android ...)에 비해 '상대적으로' 가볍다
    • 이로 인해 설치/삭제가 용이

3️⃣ Django 업데이트하기

4️⃣ Django 삭제하기

🎮 Django 설치 경로 확인

  • django가 설치된 경로를 print해라

🎮 Django 디렉토리 삭제

  • 위에서 찾은 경로로 들어가 디렉토리 삭제
  • 역슬래시(\)가 두 개 있으면 windows가 경로를 찾지 못함
    • 하나로 수정한 뒤 붙여넣기
    • 메모장에서 ctrl + h 하고 바꾸기 (\\ → \)
    • 노트패드에서 뭘 하니까 바꾸기가 나왔는데 설명은 안 해주심

(옛날 버전은 삭제해도 되겠지?)

 

5️⃣ Django 프로젝트 생성

🎮 (폴더 생성 및) 경로 확인

  • util성의 프로그램을 다운받을 경우 'download'폴더에
  • 프로젝트 관리하는 pjt 폴더

🎮 프로젝트 생성

  • 위에서 만든 경로로 이동

django-admin startproject 프로젝트명

🎮 프로젝트 확인하기

  • 해당 경로에 프로젝트가 생성됨
  • 안에 확인해보면 여러 파일과 폴더가 생성되어 있음
    • 필요한 파일들이 자동 생성됨

명령 프롬프트에서 확인해보기

6️⃣ 애플리케이션 생성

✅ 프로젝트 vs 애플리케이션

  • 쇼핑몰 사이트를 만드는 프로젝트
  • 그 안에는 게시판 기능, 결제 기능, 장바구니 기능, 회원 관리 기능 ... 여러 기능이 있음
  • 전체적인 큰 틀이 프로젝트
  • 그 안에 하나 하나의 기능들을 애플리케이션이라고 보면 됨

🎮 애플리케이션 생성하기

python manage.py startapp 애플리케이션이름
  • manage.py 파일을 활용한다
  • 프로젝트 폴더 안에서 명령어 입력했음

7️⃣ 프로젝트 디렉토리 이름 변경

  • 프로젝트를 생성하면 자동으로 프로젝트 디렉토리(바깥 폴더)내에 같은 이름의 폴더가 생성되는다(안쪽 폴더) 이 두개가 헷갈릴 수 있으니 프로젝트 디렉토리(바깥 폴더)명을 바꾼다는 말 같다
  • 헷갈리지 않는다면 굳이 하지 않아도 된다고 함

move 원래폴더명 바꿀폴더명
  • 프로젝트 폴더보다 한 단계 상위에서 작업하고 있음을 확인하기
    • tempPjt 프로젝트 폴더가 들어있는 pjt 폴더 위치에서 명령어 입력

바뀐 것 확인

 

👉🏻 MVT 패턴

IT, 특히 웹쪽에서 이루어지는 서비스를 개발할 때는 어떠한 패턴에 의해서 개발을 많이 한다

이 중 가장 유명한 패턴이 MVC 패턴이다

 

🧩 MVC 패턴

  1. Client로부터 요청이 들어옴
  2. Controler가 받는다
  3. DB 작업이 필요하다면 Controler가 Model에게 위임한다
  4. Model은 DB와 통신하여 어떤 데이터를 꺼내와 Controler에게 보내준다
  5. Controler는 특정 작업을 한다
  6. 응답하기 위해 View를 찾아간다
  7. View 안에 있는 미리 지정해놓은 많은 view들 중에 가장 적절한 view를 찾아 client에게 응답한다
  • 유지보수 측면에서 효율적이다
    • 모델은 모델쪽으로 분류하고
    • 뷰는 뷰쪽으로 분류하고
    • 컨트롤러는 컨트롤러쪽으로 분류
  • Spring 프레임워크에서 사용

✅ Controler

  • 전체적인 프로그램 실행을 관리
  • 오케스트라의 지휘자 같은 역할

✅ Model

  • 데이터베이스와 관련된 기능들

✅ View

  • 실제 클라이언트에게 보여줄 화면을 관리

 

🧩 MVT 패턴

  • MVC에서 이름만 바뀜
  1. Client로부터 요청이 들어온다
  2. View가 받아서
  3. DB와 관련된 작업이라면 Model에게 위임한다
  4. Model 뒷편에 있는 DB에서 작업 후 다시 Model에게 데이터를 준다
  5. Model은 View에게 데이터를 준다
  6. View도 특정 작업을 한다
  7. Template과 통신해서 그 중 가장 적합한 템플릿을 뽑아 가져와 Client에게 응답한다

✅ View

  • MVC에서 Controler에 해당하던 것

✅ Model

  • MVC에서 Model로 쓰던 것

✅ Template

  • MVC에서 View에 해당하던 것
  • 비슷한 기능, 이름만 바꿈

모든 개발은 서비스되어지는 순서대로 진행된다

 

👉🏻 프로젝트 디렉토리 구조

출처: SEOUL G-캠프 유튜브

🧩 tempPjt

  • tempProject 안에
  • 전체적인 프로젝트 설정을 담당하는 폴더

✅ settings.py

  • 이 프로젝트의 전체적인 세팅

✅ urls.py

  • 사용자가 특정 url로 요청 보냄 / 서버에 접속
  • 해당 url을 매핑하는 작업
  • "Client한테 어떤 요청이 들어오면 어떤 view를 찾아가라"
  • 중간에서 bridge역할

 

🧩 student

  • 생성한 애플리케이션

✅ models.py, views.py

  • MVT 패턴에서의 model과 view
  • views.py가 요청에 대한 지휘를 함
    • 데이터가 필요한지
    • 기능 구현을 해야하는지
  • models.py가 DB와 관련된 작업을 함
    • 장고는경량의 DB를 가지고 있다 (SQLight3)

✅ Template

  • template는 현재 보이지 않는다
  • 사용자가 따로 경로를 만들어 그 안에 html 문서 등을 만들어서 사용한다

 

장고 프레임워크는 쉽고 간단해서 빠른 설계와 빠른 개발이 가능하다

 

 

 

 

 

 

출처: https://youtu.be/hQyLUv_viDA?si=hFJ26vExNJXDqA5N