django-1. django시작하기
January 25, 2018
django란?
django란 파이썬으로 만들어진 무료 오픈소스 웹 어플리케이션 프레임워크로 쉽고 빠르게 웹사이트를 구축할 수 있다. 매우 인기있고 다양한 기능을 가지고 있으며 오픈 소스 이므로 커뮤니티 활동이 활발하게 이루어 져 있다. 장점
1.완전(Complete)하면서도 유연한(Versatile: 변하기 쉬운) 프레임 워크
Opinionated / Unopinionated
이 애매한 단어들을 한국말로 어떻게 번역해야 할지 모르겠지만 직역하면 의견을 고집하는(독선적인?) 프레임워크, 의견을 고집하지 않는 프레임워크라고 이다.
Opinionated Framework는 특정 방식으로 일을 쉽게 수행할 수 있도록 설계되어 있어서 설계자가 의도한대로 개발을 한다면 아주 편리하고 쉽게 개발을 할 수 있지만 거기에서 벗어나는 방법을 사용해서 개발하고자 하면 수많은 어려움에 부딪힐 수 있는 프레임 워크이고 (ruby on rails 같은..)
Unopininonated Framework는 개발자에게 많은 유연성을 제공해서 문제를 해결하는 방법을 다양하게 할 수 있도록 유연하게 설계된 프레임워크이다. 다양한 도구를 가지고 있어서 솔루션 개발이 상대적으로 어려울 수 있다. (perl)
django는 두가지 방직 모두를 제공해서 완전하면서도~ 유연한 프레임워크라고 한다. 실제로 개발을 해보면 두가지 모두를 고려했다는것이 정말로 큰 장점이라는 알 수 있다. 정~ 말 편하다
2.확장성
많은 플랫폼에서 실행 가능 한 PYTHON으로 작성되어 특정 서버 플랫폼에 묶여 있지 않고 다양한 버전에서 실행 가능함.
3.유지보수성
4.재사용성
장고는 유지보수 가능하고 재사용 가능한 코드의 생성을 장려 하는 디자인 원리와 패턴을 사용하여 작성 됨.
django는 아래의 그림과 같이 각각 처리하는 코드를 개별 파일로 그룹화 한다.
-
urls.py : 요청받은 url 매핑
-
views.py : 데이터에 access하고, 템플릿을 구성하는 등 응답을 리턴하는 처리기
-
models.py : 데이터 구조를 정의하고 데이터 베이스의 레코드를 관리하고 쿼리하는 메커니즘 제공
-
template : 파일의 구조 및 레이아웃을 정의
보안
Django는 여러가지 보호 기능을 제공한다.
- 클릭 재킹 (악의적인 사이트가 프레임에 다른 사이트를 래핑하는 공격)
- 크로스 사이트 스크립트 XSS
- 크로스 사이트 요청 위조 (CSRF)
- SQL 인젝션
- 원격 코드 실행
- 세션 보안
사용자 인증 및 권한
보안을 염두해 두고 구축 해서 강력한 사용자 인증 및 권한 시스템을 가지고 있음.
관리사이트
DJANGO는 내가 관리 사이트를 만들지 않아도 기본적으로 포함되어 있다.
아주 ~~~~ 완전한 형태로 사이트 관리자는 사이트의 모든 데이터 모델을 RWX 할 수 있음.
데이터 직렬화
SPRING에서는 JSON을 쓰려면 이것저것 설치 하고 해야 하는데
DJANGO는 걍 XML이랑 JSON을 제공하고 있다.