django 구성
- WSGI
- wsgi.py 웹서버와 장고의 결합해주는 게이트웨이, 요청이 들어오고 나감
- URL
- urls.py 정규식으로 구성, 요청받으면 정규표현식에 맞게 특정 VIEW를 선택, 보여줌, 외부에서 유저들이 접속할 수 있는 url 적어줌
- VIEW
- views.py, 직접 작성, 사용자의 요청(db 입력, 조회등)을 결정, controller 에 해당
- MODEL
- models.py, VIEW에서 신호를 보냄, database와 상호작용, 변수 지정하면 MANAGERS 라는 부분이 알아서 sql에 맞게 해줌
따로 SQL문을 작성하지않고 MANAGERS에서 관리해줌, 엔티티
- models.py, VIEW에서 신호를 보냄, database와 상호작용, 변수 지정하면 MANAGERS 라는 부분이 알아서 sql에 맞게 해줌
- TEMPLATE
- html 파일, 로직 삽입 가능, 사용자에게 보여주는 부분, view에서 받은 데이터를 어떻게 잘 보여줄지 이때 form을 사용, 응답을 WSGI로 다시 보냄
- FORM
- forms.py 데이터를 잘 보여줄 스크립트를 작성해줌
프로젝트
- 프로젝트 생성
- django-admin startproject tutorial
- 폴더구성
- manage.py (실행파일)
- tutorial (폴더)
- init.py
- settings.py
- urls.py
- wsgi.py
- 폴더구성
- django-admin startproject tutorial
- app 생성
- ./manage.py startapp community
- 프로젝트 내부에 다수의 app 생성
- 폴더구성
- communit(관리자 권한을 가진 사용자가 보는 페이지에 대한 내용을 다룸, 폴더)
- admin.py
- init.py
- mirations(폴더, db 관련)
- init.py
- models.py (데이터 베이스와 관련)
- tests.py (test)
- views.py (DB에서 가져온 데이터를 가공)
- communit(관리자 권한을 가진 사용자가 보는 페이지에 대한 내용을 다룸, 폴더)
-
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 파일을 한 곳에 모음