Django with Python 1.Django란?

mingki·2022년 4월 7일
0

Django

목록 보기
1/2
post-thumbnail

1.Django 란?

  • 마감시간이 있는 완벽주의자를 위한 웹 프레임워크다 -> 개발을 빠르고 완성도 높게 할 수 있도록 해준다
  • Python 웹프레임워크다
  • MTV 디자인 패턴을 사용한다
  • 오픈소스 이다
  • 앱(app) 단위로 프로젝트가 구성된다
    -> 앱(app) : Django 프로젝트를 구성하는 모듈을 의미한다, 장고 프로젝트 관점에서 관련된 기능을 모아둔 파이썬 파일이다, 앱 이름은 영문 복수형으로 생성한다

2.Django의 장점

  • 개발 속도가 빠르다
  • 기본적으로 필요한 기능을 제공해준다 (ORM,Admin,Templates 등)
  • 인증, 보안 부분들도 고려된다
  • 풀스택 프레임워크다

3.Django의 핵심 요소

1) Python
2) ORM
3) Templates
4) Forms
5) Authentication
6) Admin
7) Internationalization
8) Security

3-1. ORM

ORM : Object-Relational Mapping
-> 객체지향 언어와 관계형 DB를 연결해주는 기술이다, Models, QuerySet API 등이 ORM에 포함된다

3-2. Templates

자체 템플릿 시스템으로 디자인과 로직을 분리해 독립적 개발이 가능하다, HTML파일을 분리해 재사용하고 체계적으로 관리할 수 있다
-> HTML 파일에 include, if,for 등 템플릿 언어를 사용할 수 있다

3-3. Forms

데이터의 유효성 검사를 한다, 구성하고자 하는 형태 렌더링(HTML 태그생성), 제출하는 폼 데이터의 변경을 확인한다

3-4. Authentication(인증)

시스템 인증과 권한부여 기본 제공 한다 , 구성요소 : 사용자, 권한, 그룹(권한을 둘 이상 적용하는 방법)

  • 인증과 권한의 차이
    - 인증 : 사용자가 누구인지 판별한다
    - 권한 : 인증된 사용자가 어떤 일을 할 수 있는지 결정한다

3-5. Admin

관리자 인터페이스를 제공한다, 등록된 모델의 기본적인 CRUD 기능을 제공한다, 사용자 관리 / 사용자 그룹 관리 / 사용자 별 권한 을 제공한다

3-6. Internationalization(다국어/국제화)

  • 동일한 소스코드로 텍스트의 번역, 날짜, 시간, 숫자의 포맷, 타임존의 지정 등 다국어 환경을 제공한다
  • 개발자와 템플릿 작성자는 언어 및 문화에 맞게 번역하거나 형식을 지정할 수 있다
  • 특정 사용자의 기본 설정에 따라 웹 앱을 현지화할 수 있다

3-7. Security

  • CSRF(교차 사이트 요청 위조) 보호
  • SQL 주입 보호
  • XSS(교차 사이트 스크립팅) 보호
  • 클릭재킹 방지
  • SSL/HTTPS
  • 호스트 헤더 유효성 검사
  • 리퍼러 정책
  • 교차 출처 정책
  • 세션 보안
    기능을 제공한다

4.Djnago의 기본구조

4-1.MTV 디자인패턴

  • Model : 데이터관리, DB와 연결 및 실행 -> models.py 파일
  • Template : 데이터 출력, 사용자에게 표현 방식 정의 -> html 파일
  • View : 컨트롤러, 비즈니스 로직 처리 -> views.py 파일
    => 클라이언트 요청 -> View 가 받아 Model(데이터 관리) / Template(데이터 출력 역할) 에 요청하여 받은 내용을 응답한다
profile
비전공초보개발자

0개의 댓글