Django 입문

·2020년 8월 14일
0

Back-end

목록 보기
2/2

Django

Python Web Framework!

기본적인 구조나 필요한 코드들은 알아서 제공해줄테니 넌 좋은 웹 서비스 만드는 것에 집중해라~!

파이썬으로 작성된 오픈소스 웹 애플리케이션 프레임워크로, 모델-뷰-컨트롤러 SW디자인 패턴을 따른다.

  • But 엄밀히 말하면,
    MVC(Model-View-Controller) => MTV(Model-Template-View)

    • Model : 데이터 관리
    • Template : 인터페이스(화면)
    • View : 중간관리(상호 동작) = Controller
  • Python 주력 언어

  • 2005년 ~ Version Up 꾸준, 개발자 커뮤니티 활성화 되어있음

  • Spotify, Instagram★, Dropbox, Deliver Hero

  • 설치 방법

    pip install django

1. Dynamic Web

  • Static web은 미리 준비된 정적 파일들 : HTML, CSS 등

2. Web Application Server

  • 우리가 알고 있는 Web의 Protocol
    • 요청(Request)과 응답(Response) : 스스로 움직이지는 않는다.
  • 과정
    • HTTP Request
    • URLS
    • View (view.py)
    • Template (filename.html)
    • View => HTTP Response(HTML)

3. Django 시작하기

  • 시작하기
    • django-admin startproject first_project
    • pjt 이름 : 하이픈X, python / django 쓰는 기본 이름 X
  • Django 명령 수행하기

    • python manage.py runserver

      • local host 주소 나온다. => Folow Link
  • python manage.py startapp articles

    • App 하나 생성
  • settings.py
    • INSTALLED_APPS
      1. local apps
      2. 3rd paty apps
      3. django apps
    • 마지막에 요소에 , 붙이는 이유 : 뒤쪽에 뭔가를 작성하게 될 때 바로 할 수 있어서 (없어도 되지만 django의 특징)

순서 정리

  1. app 생성 (startapp)

  2. app 등록

    => 순서 지켜야함

  • 코드 작성 순서
    • urls.py
    • views.py
    • templates/{page}.html

오전에 한 것

django 설치

django pjt 생성

Server를 run 해서 Rocket page 확인

django app 생성

app을 pjt에 등록

urls => views.py => template

Variable Routing

urlpatterns = [
	path('hello/<str:name>/', views.hello),
]

Django Template Language (DTL)

django template system에서 사용하는 bulit-in template system입니다.

  • django 사이트의 Templates/DTL/Built-in-tem tags and filters에서 보면서 공부해야 함.

  • 조건, 반복, 치환, 필터, 변수 등의 기능을 제공

  • 목적이 Programming적 Logic이 아니라 (이건 View에서),
    Presentation(단순히 표현)을 위한 것

  • 파이썬처럼 if, for를 사용할 수 있지만 이것은 단순히 python code로 실행되는 것이 아닙니다.

Syntax

  • variable : {{ }}
  • filter : `{{ variable|filter }}
    • 변수나 태그 + 파이프라인 뒷쪽에
  • Tags : {% tag %}
    • for
    • if

Template System 설계 철학

  • Django는 Template System이 표현을 제어하는 도구이자 표현에 관련된 로직일 뿐이라고 생각한다 : presentation

  • Template System에서는 이러한 기본 목표를 넘어서는 기능을 지원해서는 안된다.

프레임워크

  • Opinionated (다소 독선적)
  • Unopinionated (관용적) => 자유도는 높지만 developer가 신경쓸 게 많다.
  • Django는 다소 독선적인 framework다.
    • 빠른 생산성 제공
  • root 주소
    • /articles/result
    • / 안붙이고 시작하면 현재 위치에서 추가된다.

사용자 요청의 종류

1. 어떤 데이터를 보여줘!

  • 네이버 메인 페이지
  • GET

2. 어떤 데이터를 보여줘! 그런데 내가 보내는 데이터를 참고해줘.

  • 네이버 검색
  • GET

3. 어떤 데이터를 저장, 수정 또는 삭제 처리해줘!

  • 블로그 글쓰기

  • POST

0개의 댓글