django 구성

  • WSGI
    • wsgi.py 웹서버와 장고의 결합해주는 게이트웨이, 요청이 들어오고 나감
  • URL
    • urls.py 정규식으로 구성, 요청받으면 정규표현식에 맞게 특정 VIEW를 선택, 보여줌, 외부에서 유저들이 접속할 수 있는 url 적어줌
  • VIEW
    • views.py, 직접 작성, 사용자의 요청(db 입력, 조회등)을 결정, controller 에 해당
  • MODEL
    • models.py, VIEW에서 신호를 보냄, database와 상호작용, 변수 지정하면 MANAGERS 라는 부분이 알아서 sql에 맞게 해줌
      따로 SQL문을 작성하지않고 MANAGERS에서 관리해줌, 엔티티
  • TEMPLATE
    • html 파일, 로직 삽입 가능, 사용자에게 보여주는 부분, view에서 받은 데이터를 어떻게 잘 보여줄지 이때 form을 사용, 응답을 WSGI로 다시 보냄
  • FORM
    • forms.py 데이터를 잘 보여줄 스크립트를 작성해줌

프로젝트

  • 프로젝트 생성
    • django-admin startproject tutorial
      • 폴더구성
        • manage.py (실행파일)
        • tutorial (폴더)
          • init.py
          • settings.py
          • urls.py
          • wsgi.py
  • app 생성
    • ./manage.py startapp community
    • 프로젝트 내부에 다수의 app 생성
    • 폴더구성
      • communit(관리자 권한을 가진 사용자가 보는 페이지에 대한 내용을 다룸, 폴더)
        • admin.py
        • init.py
        • mirations(폴더, db 관련)
          • init.py
        • models.py (데이터 베이스와 관련)
        • tests.py (test)
        • views.py (DB에서 가져온 데이터를 가공)
    • setting.py (환경과 관련된 설정파일)

    • DEBUG
      디버그 모드 설정

    • INSTALLED_APPS
      pip로 설치한 앱 또는 만들어진 app을 추가

    • MIDDELWARE_CLASSES(다양한 처리를 도와중) request와 response 사이의 주요 기능 레이어, 인증,보안관련의 다양한 설정 포함

    • TEMPLATES
      django 템플릿의 설정, 실제 뷰(html,변수, context등)의 위치등의 설정

    • DATABASES
      데이터베이스 엔진의 연결 설정

    • STATIC_URL
      정적파일의 url(이미지 포함)
  • manage.py(프로젝트를 관리하기위한 명령어)
    • django와 관련된, 인증, 세션, staticfile 등
    • 주요 명령어
      • startapp - 앱 생성
      • runserver - 서버 실행
        ex) ./manage.py runserver 0.0.0.0:8080 - 외부에서 접속되는 서버 생성
      • createsuperuser - 관리자 생성
      • makemigrations app - app의 모델변경 사항 체크
      • migrate - 변경 사항을 db에 반영
      • shell - 쉘을 통해 데이터 확인
      • collectstatic - static 파일을 한 곳에 모음