IT/WEB

[Django] 튜토리얼 ① : Django란

개발자 두더지 2020. 9. 8. 10:19
728x90

Django란?


Django는 파이썬으로 만들어진 무료 오픈소스 웹 애플리케아션 프레임워크(Web application framework)이다. 

[Note] Framework vs library

- 라이브러리는 "도구(tool)"이다. (예) 리액트
- 프레임워크는 "방식" (예) Django
- 라이브러리는 부를(calls) 수 있는 기능이고, 프레임워크는 코드를 부른다. 따라서 '나'는 라이브러리를 부를 수 있는 한편, 프레임워크는 프레임워크 안의 파일들을 불러낸다.

이미 개발된 컴포넌트들이 사용하기 편하게 준비되어 있고 대기업들이 사용하고 있을만큼 보안상의 문제도 없다. 

 

Django가 편리한 이유


- ORM(object relational mapper)이라는 것을 가지고 있다. ORM이란 파이썬 SQL사이의 통역사 같은 역할을 한다. 따라서 SQL 문법을 배울 따로 배울 필요가 없고 오로지 파이썬만으로 데이터 베이스를 사용할 수 있다. 기존에 사용하던 SQL(Structured Query Language)과 비교하면 아래와 같다.

[Note] ORM과 SQL

■ 가정 : Colombia에서 온 모든 유저를 찾고 싶고, 그 유저를 가입한 순서로 정렬하고 싶다.

<SQL>
SELECT * FROM users WHERE country="colombia" OREDER BY created_date

<Django의 ORM>
User.objects.filter(country="colombia").order_by('created_date')

- 기본으로 어드민 패널(Admin Panel)을 가지고 있으므로 따로 조작이 필요하지 않다.

- 기본으로 유저 승인(user authentication); 비밀번호 암호 / 해석 / 체크 등의 기능을 가지고 있다.

- URL dispatcher을 갖고 있다.

그 외 다양한 기능을 제공하고 있으므로 셋업을 빠른 속도 안에 끝낼 수 있다. 

 

Django의 구조


Django를 세 가지 구조로 구성되어 있다. 그것은 Model(데이터 관리), Template(사용자가 보는 화면), View(중간 관리자)이다.

Django의 기본적인 흐름에 대해 설명하자면, 웹 서버에 요청이 오면 Django로 전달된다. Django urlresorver는 웹 페이지의 주소를 가져와 무엇을 할지 확인한다 (urlsolver는 웹 사이트 주소인 URL를 통해 이해한다). urlresorver는 단순히 패턴 목록을 가져와 URL과 일치하는지 처음부터 하나씩 대조해 식별한다. 만약 일치하는 패턴이 있다면, 장고는 해당 요청을 관련된 함수(view)에 넘겨준다. View에서는 받은 요청을 확인하고, Model에 해당 지시를 내린다. Model은 데이터 베이스에서 요청된 데이터를 찾아 View에게 전달하고 View는 다시 데이터를 Template에 전달하여 Template에 정의된 html파일과 조합하여 사용자에게 예쁘게 데이터를 보여준다. 


참고자료

velog.io/@ikswary/django-%EA%B5%AC%EC%A1%B0

www.youtube.com/watch?v=6mHpfGjpE_M

tutorial.djangogirls.org/ko/django/

728x90