카테고리 없음

Django 강의 5월2일

FlaSh.. 2019. 5. 2. 14:57

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 강의 참고

  • 다음주 화요일까지