[Django]  basic /동작 원리
Python/Django

[Django] basic /동작 원리

장고 프로젝트는 여러가지 어플리케이션(app)을 포함

프로젝트는 어플리케이션의 집합

어플리케이션은 폴더 라고 생각하면됨

그리고 function(함수)의 집합을 어플리케이션이라고 생각하면됨

 

장고 프로젝트 > 어플리케이션 (폴더같은느낌) > 함수(function)

 

@@ Django 동작원리(구조)

 

MVT 패턴

Model(데이터관리)

Template(사용자가 보는화면)

View (중간관리자)

 

사실 MVC 패턴과 유사하다.

MVC

장고 어플리케이션을 만들면 저렇게 파일이 생성되는데

model.py =  데이터베이스

views.py  =  컨트롤러

생각하면됨 ㅇㅇ

 

 V는 html , 보여지는부분 이라고 생각하면된다. 말그대로 컨트롤러(조율)

 

1. 사용자가 브라우저에서 나 1번 과자 줘  Url로 요청을 보낸다.

2. View가 요청을 확인하고 Model은 DB에서 1번과자를 찾아서 View로 되돌려준다.

3. View는 1번과자를 Templates에 전달하고 html과 조합되서 브라우저 사용자에게 보여진다.

 

 

장고 프로젝트 생성하면 위 같이 파일들이 생기는데 설명하자면

__init__.py :

하나의 패키지 모듈로 인식시킨다. 

setting.py :

말그대로 Django 자체 설정파일

urls.py :

어떤 요청이 장고서버에 오면 도착하는곳

urls.py에서 어떤 요청이왔고 어떤 주소로 왔는지를 보고 다른곳으로 전환하는 라우터 역할을한다.

wsgi.py:

서버에 관련된 파일 // nginx와 연결할때 사용했다.

 

wsgi 란?  ( Web Server Gateway Interface )

wsgi는 CGI(Common Gateway Interface)의 일종으로, web이 이제 막 걸음마 단계를 시작했을 적에 CGI는 수많은 언어에서 문제 없이 작동한다는 이유로(애초에 CGI 외에 다른 선택권이 없기도 했다) 기하급수적으로 사용량이 증가했다. 하지만 CGI는 너무 느리고 제한사항도 많았을 뿐더러, python app에서는 CGI, mod_python, Fast CGI 등등 만을 사용했다. wsgi는 이와중에 프레임워크의 웹서버로, route web에서는 표준 인터페이스로 개발되었다.

 

..

manage.py:

서버실행과 관련된 명령어

 

 

 

장고 프로젝트에서 어플리케이션 생성시 생성되는 파일

admin.py:

DjangoAdminPage에서 GUI를 통해 관리할 모델을 선언하는 페이지

 

apps.py:

어플리케이션의 정보가 담긴파일

 

models.py :

DB 관련 코드 작성

 

tests.py:

말그대로 테스트 하는곳

 

urls.py:

장고 어플리케이션 생성시 urls.py는 자동생성 되지 않는다 따로 만들어줘야됨 ㅇㅇ

 

view.py:

어떤 요청이 들어왔을때 무엇을 실행할건지 페이지들 모여있는곳

 

 

 

 

@@ 장고 command

setting.py

개발자가 작성한 폴더를 인식시키려면 setting.py에 등록해줘야함.

 

장고 프로젝트 시작

django-admin startproject 이름

 

관리자 계정생성

manage.py가 있는 경로에서

python manage.py createsuperuser

 

장고는 sql을 따로 사용할필요없이 mig

rate 를사용

python manage.py migrate

 

어플리케이션 생성 (s를 붙일것을권장)

django-admin startapp 이름