Programmers 인공지능 데브코스 - Week 4 Day 3,4

donchanee·2020년 12월 28일
0

😃[4주차 - Day3,4]😃

Django

Python 기반 웹 프레임워크 ( pinterest, instagram이 Django 사용! )
플라스크의 경우 “마이크로” 웹 프레임워크입니다. 최소한의 기능을 갖고 있으며 살을 붙여가면서 빌드업을 하는 구조입니다.
반면 장고의 경우, 이미 거의 모든 것이 내장되어있는 구조입니다.

플라스크 - 작은 프로젝트 / 장고 - 조금 더 큰 프로젝트에 적합합니다.

가상환경

# 가상환경 라이브러리
$ pip install virtualenv

# 현재 디렉토리에 새 virtualenv 가상환경 만들기
$ virtualenv <가상환경 이름>

# 가상환경 진입하기
$ source venv/bin/activate

# Django 설치
$ pip install django

# 설치내용 체크
pip freeze

# 새로운 프로젝트 생성
django-admin startproject <project name>

# 서버 켜는 법 ( 디렉토리는 프로젝트 안의 manage.py 있는 곳에서 )
python manage.py runserver

Django Project

Project는 여러 App으로 구성할 수 있습니다. App이라고 하면, 각각 특정 명령을 수행하는 뷰나 템플릿의 모음입니다. 뷰나 템플릿은 무엇이냐면 어떤 구성요소라고 당장은 생각해봅니다.
한 사이트에 여러 기능들이 있는 페이지가 있듯이 각 기능들에 대해서 모듈화를 해서 개별적으로 진행할 수 있습니다.

예를 들어, 프로젝트 한 개에 블로그 앱, 스포츠 앱, 카페 앱 등으로 프로젝트 속에 여러개의 앱을 구성할 수 있습니다.

MVT Pattern

유명한 MVC의 패턴을 흡사하게 만든 것입니다.

MVT는 Model, View, Template으로 구성되어 있습니다.

유저가 Django에게 HTTP request를 보내면 Django, 즉 서버는 URL에서 urls.py로 url을 인식합니다. 입력된 URL을 View로 보내서 Views.py라는 파일에서 들어온 요청을 처리합니다.

(데이터베이스를 사용하게 되는 경우 Model에서 데이터베이스를 담당합니다. 장고의 경우 데이터베이스를 ORM 구조로 관리합니다.)

ORM : 객체 단위로 데이터베이스를 다룰 수 있게 도와준다. 장고의 경우 ORM이 내장되어 있다.

또한 HTML 파일을 렌더링할 필요가 있다면, Template에 미리 정의되어있는 .html파일을 통하여 이를 View로 보내서 User에게 응답해줄 수 있습니다. HTML에서는 template 언어를 통해 View에서 처리한 변수를 처리할 수 있습니다.

CRUD with Django

실습 결과물

CRUD를 구현해둔 과제 github입니다.

Code를 읽어보시면 다른 웹 프레임워크와 비슷해, 쉽게 이해하실 수 있을 겁니다.

0개의 댓글