본문 바로가기
교육/web

2020.07.30 Django

by surf_ 2020. 7. 30.

Django

 

- Django : python으로 만들어진 오픈소스 

              웹 어플리케이션을 쉽게 작성할 수 있도록 도와주는 Framework

 

  라이브러리(library) : 특수한 처리를 하기 위해서 만들어 놓은 함수 집합.

                            jQuery도 라이브러리라고 볼 수 있다.

                           장점 : 내가 모든 걸 다 작성할 필요가 없다.

                           단점(특징) : 전체 프로그램의 로직을 담당하지 않는다. (내가 로직을 짜고, 그 필요한 

                                          기능에 따라 라이브러리를 가져다 쓰는 것)

                           ex) jQuery를 이용해서 영화 정보 출력 문제를 구현할 때, 사람마다 구현이 제각각이다.

                                => 유지보수가 힘들다.

 

  프레임워크(Framework) : 프로그램의 전제적인 로직 부분(구조)이 이미 구현되어 있다. 

                                 프레임워크를 사용할 때는 기본적으로 사용되는 코드가 제공된다. (스케폴딩-scaffolding)

                                 유지보수성이 좋아진다.

                                 단, 처음에 프레임워크의 동작원리를 이해하는 작업이 필요하다.

 

 

 

 

 

- Django를 이용하면 Web Application에서 자주 구현해야 하는 내용을 쉽게 구현할 수 있다.

 

- Django의 특징 

  - 1. 장고는 MVC Model을 기반으로 한 MVT Model을 이용한다.

       MVC Model : Model : 우리가 사용할 데이터의 형식을 보여주는 부분

                         View : 처리된 결과를 사용자에게 보여주는 부분

                         Controller : 사용자와 프로세서를 연결해주는 역할 (입력을 받아서, 입력을 처리할 수                                             있는 로직에게 연결, 결과를 View에게 전달

 

       MVT Model : Model : 데이터베이스 처리

                         View : 로직을 담당 (MVC에서 controller 담당)

                         Template : 클라이언트에게 보여줄 화면을 담당

 


 

1. Django 설치

   => 도스 창에서 pip를 이용해서 Django를 설치.

        pip(python install package)

        PyPI(Python Package Index)라는 repository에 있는 Django를 설치.

        pip install Django

 

2. Project Setup 

   => 시작은 프로젝트의 뼈대를 만드는 일부터 시작.

        폴더를 만든다. C:/python-Django

        명령어를 입력해서 scaffolding을 한다.

        mysite라는 폴더 이름을 => MyFirstWebPoll

        C:/python-Django/MyFirstWebPoll/mysite

 

        이제 프로젝트에 하나의 application을 추가한다.

        C:/python-Django/MyFirstWebPoll > python manage.py startapp polls 

        ==> 수행시키면 polls라는 application이 생성된다. 폴더가 생성되고, 필요한 파일들이 scaffolding 된다.

 

        ==> 여기서부터는 PyCharm을 이용해서 처리한다.

 

        ==>  settings.my을 이용해서 프로젝트의 설정 처리를 한다.

        ==> Django의 특징 중 하나 >> 관리자모드를 기본으로 제공한다.

               관리자에 대한 id, pw가 있어야 한다는 말이고, 이 id와 pw가 어딘가(DB)에 저장되어 있어야 한다.

               따라서 Django는 기본적으로 데이터베이스가 설정이 된 상태로 사용되어야 한다.

        ==> 기본 테이블(기본 데이터베이스)을 생성해야 한다.

               python manage.py migrate

 

        ==> 서버 기동을 해본다.

               내장된 테스트 웹서버를 이용해서 프로젝트를 deploy 한다.

               python magage.py runserver

               http://localhost:8000

               http://localhost:8000/admin  > 관리자 화면

 

        ==> 관리자 ID와 PW를 생성해야 한다.

               python manage.py createsuperuser

 

               DEBUG = True    # 만약 DEBUG가 True면 개발 모드

                                      # 만약 DEBUG가 False면 운영모드

 

               ALLOWED_HOSTS = [ ]  # DEBUG = True여서 개발 모드면 ALLOWED_HOSTS를 비워놔도 된다.

                                      # ['localhost', '127.0.0.1']

                                      # DEBUG = False 여서 운영모드면

                                      # ALLOWED_HOSTS에 실제 운영되는 서버의 IP주소나, Domain Name이 들어와야 한다.

           

               INSTALLED_APPS = [ ] 에다가 'polls.apps.PollsConfig'  =>   폴더명.파일명.클래스이름   추가해주기

 

 

3. polls application 구현

 

   - 1. Model생성부터 해야 한다.

        Model 작업은 우리가 사용하는 Database에 Table을 생성하는 작업이다. (Table == Relation) 

        Database : 데이터의 집합체 

        DBMS (Database Management System) : 데이터베이스를 구축, 정보를 추출, 새로운 데이터를 입력,

         기존 데이터를 삭제, 기존 데이터를 수정하는 작업을 진행(프로그램)

        ==> sqlite3라는 DBMS를 Django에서는 default로 사용.

 

        데이터베이스는 언제부터 사용했을까.

        초기 : 계층형 데이터베이스 (폴더별로 모아놓는 거)

        중기 : 관계형 데이터베이스 Relational Database (DB2)  

                 => 성능도 좋고, 사용하기도 편하다.

        현재 : 객체지향의 개념이 들어가서 객체 관계형 데이터베이스 탄생.

                ORM (Object Relation Mapping) 방식. 데이터베이스를 클래스의 객체화시켜서 저장.

 

 

 

 


 

Django Model 생성하는 방법 정리. 

1. 생성하고자 하는 폴더에서 scaffolding진행 

    C:/python-Django > django-admin startproject mysite

    이번에는 혼동을 막기 위해 폴더명을 MyFirstWebPoll로 변경.

2. polls라는 애플리케이션을 생성하는 명령어 입력

    C:/python-Django/MyFirstWebPoll> python manage.py startapp polls

3. settings.py에서 설정값 조절 (개발 모드나 운영모드, 프로젝트에 포함되는 app, 시간 등)

4. 프로젝트 deploy

    C:/python-Django/MyFirstWebPoll> python manage.py runserver

5. 관리자 계정 생성

    C:/python-Django/MyFirstWebPoll> python manage.py createsuperuser

6. 모델 생성, admin site에 등록

    models.py 파일 수정, admin.py 파일에 admin.site.register(Question)으로 등록

7. Database 변경사항 반영

    C:/python-Django/MyFirstWebPoll> python manage.py makemigrations

    C:/python-Django/MyFirstWebPoll> python manage.py migrate

 

 

 

'교육 > web' 카테고리의 다른 글

2020.07.31 ~ 2020.08.03 Django project  (0) 2020.08.03
2020.07.28~2020.07.29 Web 예제  (0) 2020.07.28
2020.07.24 AJAX  (0) 2020.07.28
2020.07.23 Web(HTML, CSS, jQuery)  (0) 2020.07.23
2020.07.22 Web Service  (0) 2020.07.22

댓글