Django

do yeon kim·2022년 6월 29일
0

Django 초보가이드

  • MVC, MTV
  • Django개념
  • Project와 App
  • settings.py
  • manage.py

MVC, MTV

Model
안전하게 데이터를 저장하면, 사용자와의 데이터 요청과 응답에 관한 데이터베이스의 데이터관련 모든 것이라고 생각하면 된다.

View
데이터를 적절하게 유저에게 보여준다. Model에 있는 데이터를 웹서버가 가지고 와서 그 데이터를 유저에게 보내주어야 한다. 단순히 보내는 것이 아니라 유저가 원하는 형태로 변화해서 보내는 역할을 한다.

Control, Template(Django)
사용자의 입력과 이벤트에 반응하여 Model과 View를 업데이트

처음에는 다양한 파일이 하나의 파일안에 들어가 있었다.
그러다보니 여러명이 작업을 할 때 어려움이 있었고, 이를 해결하기 위해서 조금씩 분리하기 시작했다.
그 결과 3가지 쪼개서 프로그램을 구현하게 되었다.(MVC)

이벤트

  • USER가 Controller에 다양한 이벤트나 입력을 조작한다.

  • Controller는 이벤트에 필요한 데이터를 모델에 요청한다

  • Model은 요청받은 데이터를 Controller에게 보낸다.

  • Controller는 데이터에 대해서 가공을 해서 View에 보낸다.

  • View는 다시 User에게 보낸다.

입력

  • USER가 Controller에 input을 하면

  • Controller는 input을 Model에 쓴다.



Django 개념

1.웹브라우저에서 이벤트가 발생한다.

2.장고 서버로 들어온다.

3.URL Dispatcher
브라우저에서 요청한 url을 분석한다.

4.View
url에 적합한 view로 보내게 된다.
데이터베이스의 어디에 접근해서 어떤 데이터를 가공해야 할지 알려준다.

5.Model
model에서 실제 database와 connections을 하고 데이터를 가지고 온다.

6.Database
database에선 Model에서 요청한 해당데이터를 다시 Model에 보내준다.

7.Model
model이 응답받은 데이터를 다시 View에 보내준다.

8.View
우리에게 실질적인 데이터를 Template에 보내준다.

9.Template
html, js와 같은 UserInterface를 만들어서 웹브라우저로 넘겨준다.

특정영역을 분리하는 것이 중요하기 때문에 이러한 과정을 따르게 된다.

녹색으로 표현된 파일들이 우리가 다룰 파일들이다.

WSGI(wsgi.py)
web server gateway interface로 신호가 들어온다.
크게 건들릴 만한 것은 없다.
웹서버와 장고를 적절하게 결합시켜준다.

URL RESOLUTION(urls.py)
파이썬 파일인 urls.py에서 WSGi를 지난 신호를 받게 된다.
정규표현식으로 되어 있다.
정규표현식에 맞는 특정한 뷰로 보내준다.

VIEW(views.py)
실질적으로 파이썬 코드를 작성하는 곳이다.
데이터베이스에 입력을 할 것인지, 아니면 데이터베이스에서 데이터를 가지고 올 것인지 등을 결정한다. 그리고 MODEL에 신호를 보내게 된다.

MODEL(models.py)
데이터베이스로 부터 데이터를 가지고 올 때 클래스를 만드는 등 어려웠지만
현재는 간단한 조작(변수를 만드는 등)편해졌다.

VIEW(views.py)
MODEL에서 받은 데이터를 다시 가공한다.

TEMPLATE(example.html)
유저에게 보여주기 위한 UI작업을 한다.
html파일 안에 로직을 삽입할 수 있다.
view에서 받은 파일을 어떻게 html에 보여줄지 등과 관련된 로직을 구현
다양한 form을 작성하게 된다.

FORM(form.py)
FORM을 이용해서 MODEL과 TEMPLATE에 있는 것을 쉽게 관리 할 수 있게 된다.



Project와 App

하나의 Project가 하나의 웹사이트라고 생각하면 된다.
프로젝트 안에는 다양한 기능이 있다. 의미 있는 하나의 기능들을 App으로 관리 할 수 있다.

  • 프로젝트 생성
    django-admin startproject

  • app생성
    ./mange.py startapp community
    프로젝트내부에 다수의 app생성



settings.py

프로젝트 환경 설정 파일

  • DEBUG
    디버그 모드 설정
    에러와 관려된것

  • INSTALLED_APPS
    pip로 설치한 앱 또는 본인이 만든 app을 추가

  • MIDDELWARE_CLASSES
    request와 response사이의 주요 기능 레이어
    인증, 보안과 관련된 기능들이다.

  • TEMPLATES
    django template관련 설정, 실제 뷰(html, 변수)

  • DATABASES
    데이터베이스 엔진의 연결 설정

  • STATIC_URL
    정적 파일의 URL(css, javascript, image, etc)



mange.py

프로젝트 관리 명령어 모음

주요 명령어

  • startapp
    앱생성

  • runserver
    서버 실행

  • createsuperuser
    관리자 생성

  • makemigrations app
    app의 모델 변경 사항 체크
    데이터베이스 모델의 변경사항이 있으면 서버와 동기화 할 수 있는 쿼리를 생성하게 된다.

  • migrate
    변경 사항을 DB에 반영

  • shell
    쉘을 통해 데이터를 확인

  • collectstatic
    static파일을 한 곳에 모음
    배포를 할 때 앱마다 static파일이 존재하는데 한곳에 모아주는 역할을 한다.

0개의 댓글