Django 강의 5월2일
Django
Django란?: python을 사용한 웹 framework
- 웹? :
-
인터넷에 연결된 사용자들이 정보를 공유 할 수 있는 공간
-
- framework? :
-
개발 편의성을 위해 자주 사용하는기능을 미리 만들어 놓은 것
-
공유를 통해 쉽게 다운받아 사용 가능
-
오픈소스인 경우 내가 새 기능을 추가 하거나 수정하여 업데이트를 할 수 있음
-
대부분 오픈소스
-
대표적으로 Bootstrap
-
- 서버:
-
컴퓨터
-
서비스를 제공할 목적인 컴퓨터
-
여러사람이 서버컴퓨터 ip로 request를 통해 접근가능
-
내 컴퓨터도 서버로 쓸수 있다 (다만 성능 / 보안이 구릴뿐 )
-
-
서버 구조:
Django 의 특징:
장점
-
비교적 쉬운 언어인 Python을 기반으로 두기 때문에 익히기 쉽다.
-
익히기 쉬운 만큼 개발속도도 빠르고, 코드 완성도를 높게 유지할 수 있으며 확장성도 좋다.
-
웹 애플리케이션이 제공되어야하는 사용자 인증, 사용자 관리 등을 기본적으로 기능 구현이 되어 있다.
-
성공적인 도입 사례가 많다. (Instagram이 대표적인 사례다.)
-
개발 비용을 크게 절감시킬 수 있다.
단점
-
Python을 기반으로 하기 때문에 비교적 쉬운 언어이지만, Python이 객체 지향 프로그램이므로, 객체 지향 프로그램에 대한 이해도가 필요하다.
-
Python의 단점을 대부분 포함한다.
-
성능이 다른 웹 애플리케이션 프레임워크(Node.js 등)보다 좋지 못하다.
-
한글화된 문서가 그렇게 많지 못하다.
MTV 패턴:
project:
-
APP들을 가지고 있는 DJANGO 서비스 (웹에 배포)
-
settings.py: 프로젝트(앱을 포함)에 필요한 모든 정보를 가지고 있음
-
urls.py: 경로 관리
-
app:
-
DJANGO 서비스안에서 세부적인 기능별로 나누어진 작은 프로젝트
-
ex) 장바구니 ,주문배송 조회, 메인페이지 등등
-
MTV를 가지고 있음
-
모델 템플릿 뷰의 상호작용으로 사용자의 request에 대한 response를 생성하고 전달
-
-
가상환경:
-
project를 구성하고 실행하는데 필요한 것들을 버전에 맞게 모아 놓은곳
settings.py:
-
프로젝트(앱을 포함)에 필요한 모든 정보를 가지고 있음
manage.py:
-
django에서 커맨드를 실행할때 setting.py 를 참조할 수 있도록 해줌
urls.py:
-
client 요청이 들어오면 url 주소에 따라 실행할 views 기능을 선택하도록 함![ss](C:\Users\13053\OneDrive\바탕 화면\ss.PNG)
views.py:
-
실제로 요청을 처리할 로직 부분
-
ex) 데이터베이스 접근
-
html 페이지 response
-
검사
-
127.0.0.1 (local host):
-
내 컴퓨터
-
내 컴퓨터의 가상 ip 주소
-
인터넷 연결이 필요없음
-
사용자 연결 요청 -> os -> 127.0.0.1 서버에 요청 (8000포트)-> response
-
서버는 하나의 프로그램에 대해서만 실행가능
-
서버 (127.0.0.1을 동시에 run하면 먼저 run한걸로 연결)
-
-
hello world 페이지 만들기:
- 프로젝트 폴더 생성
- python -m venv '' "** 가상환경 생성
- 가상환경 실행
- pip3 install django**
- django-admin startproject '' "** 새 프로젝트 생성
python manage.py startapp " "** 새 앱 생성
- python manage.py runserver** 서버 실행
과제: wordcount 만들기
-
class lion 강의 참고
-
다음주 화요일까지