Django 프로젝트

개발/python 2017. 11. 29. 00:56

Django 앱 만들기

참고

  1. 시작하기 전에

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

          # 패키지 설치
          $ sudo pip install virtualenv
      
          # 프로젝트 생성
          $ virtualenv venv_projat
          New python executable in /naver/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 모델
      • 좋은 참고자료
      • 모델 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
      
    • 프로젝트 구조

        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
      
  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


Posted by 감각적신사
,