Django 기본구조

김민석·2023년 6월 21일
1

Django

목록 보기
1/3

1. Django란?

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

프레임 워크란?
소프트웨어 개발을 위한 기능, 구조의 틀을 제공
시스템 흐름을 프레임 워크가 제어함

프레임워크와 라이브러리를 혼동하는 경우가 있어서 라이브러리는 다음과 같다

라이브러리란?
소프트웨어 개발을 위한 기능을 제공
시스템 흐름을 개발자가 제어함

참고벨로그

Django의 장점

  1. ( 효율적 ) 이미 구현되어 있는 코드로 시간과 비용을 절약하여 생산성이 높음
  2. ( 품질 향상 ) 수많은 개발자들이 검증한 코드로 버그를 최소화 할 수 있음
  3. ( 유지보수 용이 ) 체계적인 코드관리로 유지보수 용이,
    개발자 기준보다 프레임워크 기준으로 개발하기에 수월한 협업 가능

Django의 단점

  1. 프로그래밍 언어 외 별도 학습 필요
  2. 기본 설계된 구조로 개발이 다소 제한적

2. Django의 핵심 요소

ORM(Object Relational Mapping)
객체지향언어와 관계형 데이터베이스를 연결해 주는 기술
Models, QuerySet API(둘 다 많이 씀) 등이 ORM에 포함

Templates
자체 템플릿 시스템, 디자인과 로직을 분리하여 독립적 개발
** HTML 파일을 분리하여 재사용, 체계적으로 관리
HTML 파일에 include, if, for 등 템플릿 언어를 사용

Forms
** 데이터의 유효성 검사 (ex 핸드폰 번호 인증시 번호만 있는지)
구성하고자 하는 형태 렌더링(HTML 태그 생성)
제출하는 폼 데이터의 변경 확인

Authentication
시스템 인증과 권한부여 기본 제공

Admin
관리자 인터페이스 제공
등록된 모델의 기본적인 조회, 추가, 수정, 삭제 기능 제공(CRUD)
사용자 관리, 사용자 그룹 관리, 사용자 별 권한 기본 제공

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

Security
CSRF(잘못된 요청 보호)
SQL 주입 보호

MTV 패턴
Model => 데이터 관리, 데이터 베이스와 연결 및 실행 models.py
Template => 데이터 출력, 사용자에게 표현 방식 정의 html
View => 컨트롤러, 비즈니스 로직 처리 views.py

3. Django의 세팅

python -m venv venv     =>  venv 파일생김
.\venv\Scripts\activate=>가상환경 접속 => 앞에 ( (venv) 적혀있는 지 확인해야함)

init => python 패키지라는 것을 알려줌
asgi => 배포할 때 사용함
wsgi => 배포할 때 사용함
settings.py => 장고가 실행되는데에 있어서 설정값이 들어가 있다.
url.py => urls 안에있는 path로 접속함.
migrations => 정의한 데이터를 바탕으로 DB를 구축할때 기록을 남긴다
admin => 관리자 인터페이스를 만들때 필요함
apps => 관리자 이름 등 설정값(거의 만질 일 없긴함)
tests => 테스트 코드 작성
templates => html 파일 만들어줌

파일이름은 바꾸지 않는게 좋을 듯....


apps를 추가했으면

config 안에 있는 settings.py installed_apps 안에 앱 이름 추가해 줘야함

0개의 댓글