T.I.L (Django 1일 차)

2023. 4. 3. 17:40T.I.L (Today_I_Learned)

장고 - 오늘 배운 것


장고란??

 

더보기
  • Django(장고)는 Python으로 만들어진 프레임워크 입니다.

 

웹의 동작 순서 및 개념

  • 클라이언트 / 서버 / API 개념 정리

 

더보기
  • 클라이언트 : '요청을 보내는 곳' 이라고 생각 하시면 됩니다. 주로 '나', '내 컴퓨터' 혹은 '크롬'을 클라이언트라고 얘기 합니다.
  •  
  • 서버 : '요청을 받아서 응답 해 주는 곳' 이라고 생각 하시면 됩니다. 우리가 인터넷에서 웹페이지, 로그인등의 행동을 하고 난 후에 이루어지는 많은 과정들을 처리 해 줍니다.
  •  
  • API : 데이터를 어떻게 주고 받자! 라고 정한 약속 이라고 생각하시면 됩니다.
  • 웹의 동작 구조

 

더보기

웹의 동작 구조

  • 클라이언트가 서버에게 필요한 정보를 요청(Request)합니다.
  • 서버는 요청이 들어온 API를 확인하고 그에 맞는 HTML 혹은 data를 응답(Response) 해 줍니다.

응답(Response)의 두가지 경우

1. 페이지를 받는 경우

  • HTML, CSS, Javascript가 적절하게 섞여있는 페이지를 받는 경우입니다. 
  • 우리가 흔히 접속하는 구글, 네이버 등등의 페이지를 보는 경우가 포함 되어 있습니다.

 

2. 데이터만 받는 경우

  • 페이지나 화면은 크게 필요 없고, '데이터' 만을 받고 싶은 경우도 있습니다.
  • 데이터 베이스에서 자료를 가져오거나, 다른 사람이 만든 데이터를 가져 올 때의 경우가 포함 되어있습니다.

 

 

웹 프레임워크

 

  • 웹 프레임워크

 

더보기
  1. 프레임워크는 '개발을 도와주는 하나의 틀'
  2. '틀'은 결과물을 일정한 형태로 만들 수 있도록 도와줍니다.
  3. 때문에 우리가 비슷한 방법과 방식으로 완성 된 형태를 만들 수 있습니다.
  • 파이썬 웹 프레임워크

 

더보기
  1. 최소한의 기능만 제공하는 형태 - Flask, Pyramid(서버를 만들기 위한 최소한의 기능들만 제공하는 철학을 가지고있는 프레임워크들입니다.)
  2. 많은 기능들을 제동하는 형태 - Django(웹서비스에 공통적으로 필요한 부분들이 미리 구현되어 있습니다.)

 

 

장고 MVT패턴

 

더보기

MVT패턴은 장고가 일하는 방식을 보여줍니다.

  • M (Model)
    • 데이터베이스의 모델 (ORM)
    • 저장되고 사용되는 데이터의 형태
  • V (View)
    • 실질적으로 프로그램이 동작하는 부분
    • url을 요청하고 응답하는 그 사이에 일어나는 '서비스'들이 존재하는 곳
  • T (Template)
    • 사용자에게 보여지는 부분
    • 화면

 

*ORM

  • Django의 ORM은 Python으로 데이터베이스 클래스 모델을 만들고, 만든 모델을 바탕으로 자동으로 데이터베이스를 다룰 수 있도록 도와줍니다.
  • 흔히 '쿼리'(데이터베이스를 다루기 위해 사용하는 언어) 라고 하는 부분들을 작성 하지 않아도 되는 것 입니다.

예제) 글쓰기 모델 예제

      class Post:
          id = IntegerField()
          title = CharField()
          author = CharField()
          context = TextField()

 

 

장고 프로젝트 만들기

더보기
  1. 가상환경을 조성해 줍니다. python -m venv venv
  2. 장고를 설치해 줍니다. python -m pip install django
  3. 장고 프로젝트를 만들어 줍니다. django-admin startproject <프로젝트명>  
    • ex) ex) django-admin startproject django_pracviews.py

 

 

장고 서버 실행

더보기

터미널에서 프로젝트 폴더 최상위로 이동한 뒤 'python manage.py runserver'를 입력하여 실행합니다.

'T.I.L (Today_I_Learned)' 카테고리의 다른 글

T.I.L - Django 팀 프로젝트 2  (0) 2023.04.11
T.I.L - Django 팀 프로젝트 1  (0) 2023.04.10
T.I.L (코딩 테스트 중 만난 pop 함수)  (5) 2023.03.31
T.I.L  (1) 2023.03.30
T.I.L (알고리즘 문제의 문제 - 1)  (0) 2023.03.29