Django 앱 만들기

참고
how to use

  1. 시작하기 전에

    • 프로젝트 vs. 앱
      - 프로젝트는 다양한 앱을 포함
      - 앱은 웹 어플리케이션의 기능 (e.g., 웹 블로그시스템,공공 기록의 데이터베이스 또는 간단한 투표 앱)
      
    • virtualenv: 개발환경에서 독립된 개발환경을 제공해주는 프로그램

      ```
      # 패키지 설치
      $ sudo pip install virtualenv
      
      # 프로젝트 생성
      $ virtualenv venv_projat
      New python executable in /mr.sense/venv/venv_projat/bin/python
      Installing setuptools, pip, wheel...done.
      
      # 가상환경 실행
      $ source ./venv_projat/bin/activate
      
      # 가상환경 에서 사용하는 python moduel 확인
      $ pip list
      Django (1.11.3)
      pip (9.0.1)
      pytz (2017.2)
      setuptools (36.2.5)
      wheel (0.29.0)
      
      # 가상환경 종료
      $ deactivate
      ```
      
  2. Django 의 구조

    • MVT 모델
      - [좋은 참고자료](http://heiswed.tistory.com/category/SW%20%EA%B0%9C%EB%B0%9C/Django)  
      - 모델  Model:  
            - DB 구조를 설정하는 컴포넌트, ORM 방식을 사용하여 SQL 문을 직접 사용하지 않고 파이썬 객체로 접근  
            - 하나의 class 가 하나의 table 을 의미한다  
      - 뷰 View: (== MVC 모델의 Controller)  
            - 데이터를 입력받거나 표시하는 컴포넌트   
      - 템플릿 Templates: (== MVC 모델의 View)  
            - 사용자의 입력과 이벤트에 반응하여 Model 과 View 를 업데이트  
            - 디자인 영역의 분리 및 재사용서을 높이기 위해 HTML 구조만 따로 모아놓은 것  
            - {{변수}}, {{% 태그 %}}   
      
    • 흐름도

  3. Django 프로젝트

    • 생성

       ```
           # django-admin.py {{실행 파라미터}} {{프로젝트명}}
           $ django-admin.py startproject djangoproject
       ```
        > django-admim 스크립트의 이름은 배포 패키지에 따라 다를 수 있음
      
    • 구조

       ```
          djangoproject/
              ㄴ manage.py # 초기화, 마이그레이션, 실행 등을 수행하는 파일
              ㄴ djangoproject/
                      ㄴ __init__.py
                      ㄴ settings.py # 웹사이트 설정이 있는 파일
                                - ALLOWED_HOSTS: 접근 가능 호스트 정리
                                - DATABASES: 사용할 DB 정보
                                    - ENGINE:
                                        'django.db.backends.sqlite3'
                                        'django.db.backends.postgresql_psycopg2'
                                        'django.db.backends.mysql'
                                        'django.db.backends.oracle'
                                - INSTALLED_APPS:
                                    - django.contrib.auth – 인증시스템
                                    - django.contrib.contenttypes – 컨텐츠타입 프레임워크.
                                    - django.contrib.sessions – 세션프레임워크
                                    - django.contrib.sites – 한번의 Django설치로 여러 사이트 관리를 위한 프레임워크.
                                    - django.contrib.messages – 메시징 프레임워크
                                    - django.contrib.staticfiles – 정적파일을 관리하기 위한 프레임워크.
                                    - **신규 생성할 앱을  프로젝트에 추가한다.**                                
                      ㄴ urls.py # urlresolver 가 사용하는 패턴 목록을 포함
                      ㄴ wsgi.py # wsgi 호환 서버에서 서비스를 하기 위한 진입점
           ```
      
  4. Django 앱

    • 생성
      $ python manage.py startapp django1stapp
    • 프로젝트와의 연결
      • 프로젝트 하위 settings.py 의 INSTALLED_APPS 에 추가한다
  5. 실행

    •   $ python manage.py makemigrations
      

      model 의 변화 사항을 migration 폴더에 python 파일로 저장함.
      위에서는 ./migrations/ 폴더내에 0001_initial.py 파일이 새로 생김
      아직 database 에 model table 생성된것은 아님

        $ python manage.py migrate
      

      db table 생성

        $ python manage.py runserver ip:port
      

      django project run


'개발 > python' 카테고리의 다른 글

Python multiprocess vs multithread  (0) 2018.05.24
django mysql rest api project  (0) 2018.03.11
Django 프로젝트에서 batch job 돌리기  (0) 2018.01.23
Django 프로젝트  (0) 2017.11.29
Python Django WEB project 개발하기1  (0) 2016.08.17
Posted by 감각적신사
,