Django framework flow에 대한 간략한 흐름설명
1. 사용자가 클라이언트를 이용하면 클라이언트가 URL로 request를 한다.
2~3. URL문자를 django가 URLConf라는 방식을 이용하는데 urls.py안에 어떤 url 요청이 오면 어떻게 처리해라라는 url과 실제로 장고프레임워크가 실행되어야 하는 함수 또는 클래스의 메소드가 맵핑이 되어있다.
이런 URLconf를 통해서 URL을 어떤 view에 어떤 함수 또는 메소드가 실행될것인지를 결정한다.4. 그러면 View에서 실제로 실행되어야할 함수나 메소드가 실행되고 이때 View에 있는 함수나 메소드가 실행됨에 있어서 데이터베이스가 필요하다 싶으면 해당부분을 Model에 넘긴다.
5~6~7. Model은 데이터베이스에 접근해서 필요한 데이터를 가공해 온다. 가공한 데이터는 다시 Model로 오고 Model은 View에게 데이터를 가져왔다고 알려주고 View는 가져온 데이터를 가지고 추가적인 부수작업을 한다.
8~9. 그다음 View는 이런이러한 데이터를 클라이언트가 요청을 했으니 그 중 가장 알맞은 .html폼을 달라고 템플릿에 요청을 한다. 그러면 템플릿안의 여러가지 html문서중에 특정한것을 뽑아 이것을 마지막으로 클라이언트에 response해준다.
URLconf(urls.py)
urls.py는 보통 프로젝트를 만들면 생성한 프로젝트이름 폴더 내부에 똑같은 프로젝트이름 폴더가 있는데 그안에 존재한다.
그것을 보면 리스트형식으로 된 urlpatterns라는 변수명의 자료가 기본적으로 존재한다.
urlpatterns 내부를 보면 path라는 함수를 이용하는것을 확인할 수 있다.
path는 ,(콤마)로 구분되어 있고 ,(콤마) 앞부분이 클라이언트가 요청한 URL이다.위 이미지를 예로들면
클라이언트가 url요청을 student/register/ 로 하면 서버는 view안에 있는 student_register함수 또는 메소드를 실행시키겠다는 뜻이다.
Model(models.py)
models.py가 orm 방식을 사용해서 데이터베이스 형식으로 변경해주기 때문에 우리는 models.py에 class를 만들어야한다.
ORM(Objcet Relational Mapping) 방식
SQL데이터베이스가 있고 데이터베이스를 다루기위한 언어인 SQL쿼리문이 있다.
그것을 우리가 class로 맵핑을 해서 좀 더 쉽게 사용자가 사용할수 있게 만들어놓은 방식이다.
어플리케이션 새폴더 생성시 settings.py에 등록해서 django에게 알림 및 개발모드와 운영 모드 설정
프로젝트 관리자 모드 생성 및 데이터베이스 적용
보통 프로젝트를 만들면 사용자모드도 만들지만 관리자 모드도 만들어야한다.
django는 빠른 생산성을 위해서 기본적으로 관리자모드를 제공한다.
내가 프로젝트를 하나 생성하면 자동적으로 관리자모드가 하나 생긴다.
관리자모드를 사용하려면 기본적으로 사용하는 사용자가 관리자들이 모여있는 그룹테이블을 하나 생성해줘야한다.
그러기위해서는 터미널에서 프로젝트폴더에 들어가 python manage.py migrate를 입력한다.
(python manage.py migrate의 뜻은 manage.py를 이용해 migrate 한다는 뜻이다.)
그렇게 하면 관리자 모드가 열린다.
관리자모드를 열은후 관리자모드 계정을 생성(다음 자료)하고 이하내용인 데이터베이스 생성을 진행한다.데이터베이스 생성 및 변경
그리고 데이터베이스를 생성하기위해서 python manage.py makemigrations를 입력해 어떤 변경사항이 있는지 확인하고
python manage.py migrate를 하여 변경사항을 반영한다.
이 과정은 데이터베이스가 변경될때마다 해야한다.
그렇게하면 model.py의 내용에 그대로 적용이 된다.
관리자모드 계정 생성 및 테스트서버 접속
위 과정으로 관리자 모드가 생성되긴 했으나 관리자 모드에 들어갈수는 없다.
관리자모드에 들어가기위해서는 관리자계정과 암호가 있어야한다.
관리자 계정을 생성하기위해서 python manage.py createsuperuser를 입력한다
그후 username, email address, password, password(again)을 차례대로 입력하고 yes를 한다.
그러면 관리자모드가 생성된다.파이썬은 내가 어떠한 서버를 만들어놓지않아도 테스트서버로 기본적으로 간단한 서버를 제공하고 있다.
그 서버를 실행시키기위해서는 python manage.py runserver 를 입력한다.
그러면 실제로 웹사이트에서 내 웹서비스에 접근할수 있다. 그래서 모의로 내 서버를 테스트 할수있다.