Django는 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework)입니다
프레임 워크란?
소프트웨어 개발을 위한 기능, 구조의 틀을 제공
시스템 흐름을 프레임 워크가 제어함
프레임워크와 라이브러리를 혼동하는 경우가 있어서 라이브러리는 다음과 같다
라이브러리란?
소프트웨어 개발을 위한 기능을 제공
시스템 흐름을 개발자가 제어함
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
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 파일 만들어줌
파일이름은 바꾸지 않는게 좋을 듯....