✅ 목표
1. 파이썬을 활용해 사용자의 요청이 들어올 때마다 웹페이지를 찍어내는 공장을 만들자
2. 사용자로부터 투고를 받아 페이지를 생성하거나, 사용자마다 다른 페이지를 보여주는 개인화
* windows conda 가상환경에서 cmd와 vsc로 실행
2. django로 app 만들기
1) app의 개념
web application의 실제 구현은 project 내부에서 진행되는 것이 아님.
app이라는 더 작은 단위를 만들고 거기서 실제 구현을 진행.
프로젝트 진행 시에는 여러 다양한 기능들로 복잡해질 수 있기에, 연관된 로직을 모은 app 여러개를 만들어 정리한다.
그리고 각 app들은 url.py라는 파일을 개별로 보유하고 있다.
각 app 내부에는 view.py와 model.py가 포함된다.
- view.py : 여러가지 함수를 만들어 app의 구체적인 구현을 진행
- model.py : DB에 접근하는 기능
[전체 맥락]
1) 사용자가 여러 경로를 통해 접속
2) project의 urls.py를 통해 각각의 경로에 따라 특정 app으로 위임
3) app의 urls.py를 통해 view의 특정 함수로 위임
4) DB에 접근하는 경우에는 model.py를 통해서 접근
5) 전달받은 DB 및 결과를 html, json, xml 형태로 클라이언트에게 제공
2) APP 생성
django-admin의 startapp 명령어를 통해 app을 생성(django-admin startapp app이름)
3) Django Web Framework에서 Routing의 개념
어떤 web framework를 사용하던지 제일 먼저하는 작업은 라우팅(경로 분배)이다.
project 폴더의 urls.py에서 가장 큰 틀의 라우팅. 여기서 입력 경로에 따라 특정 app으로 위임되고,
app의 urls.py에서 view의 특정 함수로 위임된다.
4. 접속 경로에 따른 Routing
1) http://127.0.0.1/ 로 접속 시에 가장 먼저 myproject의 urls.py의 path 함수가 작동하여
어떤 경로든 상관없이 myapp의 urls.py로 위임한다.
2) myapp의 urls.py에서는 ' ' / 'create/' / 'read/<id>/' 라는 경로에 따라 myapp의 views로 이동하여
각각 index, create, read 함수를 실행한다.
3) views.py에서는 실질적으로 구현을 위해 함수들이 작동한다.
위임받은 함수에 따라 HttpResponse 함수를 활용하여 http 형태의 객체를 클라이언트에게 반환한다.
이때 read 함수의 경우 id라는 인자를 가지는데, myapp.urls.py로 부터 read/<id>라는 경로를 위임받을 시 <>형태로 묶인 id 변수를 read 함수의 id 인자로 넣어주게 된다.
'파이썬 웹개발' 카테고리의 다른 글
[GIT 활용] vscode 활용 git에 프로젝트 폴더 전체 올리기 (0) | 2024.01.16 |
---|---|
[Django web app 생성] 5. django로 web application 삭제, 수정 기능(delete, update) 구현 (1) | 2024.01.16 |
[Django web app 생성] 4. django로 web application 생성 기능(form) 구현 (0) | 2024.01.12 |
[Django web app 생성] 3. django로 web application server 만들기 (0) | 2024.01.12 |
[Django web app 생성] 1. conda 가상환경 세팅, django 시작 (1) | 2024.01.10 |