web/django

Django 프로젝트의 구조 및 관련 개념 정리

민사민서 2024. 5. 7. 01:55

Django 프로젝트 구조

|-- manage.py
|-- seminar/
|   |-- settings.py
|   |-- urls.py
|-- account/ #account라는 앱(이번 시간엔 만들지 않음)
|   |-- models.py
|   |-- views.py
|   |-- urls.py
|-- post/ #post라는 앱
|   |-- models.py
|   |-- views.py
|   |-- urls.py
|-- .venv/
|-- db.sqlite3

 

- 위 예시는 seminar 프로젝트 아래에 기능별로 account, post 앱이 존재하는 케이스

- seminar 폴더에서는 전체 프로젝트의 기본 URL, 환경변수 등의 설정을 함

- account, post 폴더에서는 앱의 구현이 담김, seminar/ 폴더와 같은 depth 라는 것!

- mange.py 파일은 Django 프로젝트 생성 시 함께 생성되는 파일, 장고의 여러 명령어를 실행하는 역할

   * runserver => 로컬 개발 서버 실행

   * migrate => DB 관리 (DB migration 수행)

- db.sqlite3 파일은 Django가 실제로 사용하는 DB 파일

- .venv 파일은 가상환경 폴더로, .venv\Scripts\activate.bat 파일 실행을 통해 가상환경 진입

 

장고의 프로젝트 개요도

클라이언트가 서버에 요청을 보내면 URL 패턴에 따라 특정 함수 / 클래스 기반의 View가 호출됨

View는 요청을 받아 처리한 후 결과를 전달, 모델을 통해 DB의 데이터를 조회하거나 수정함

모델은 DB의 구조를 정의하는 곳, Django ORM을 사용해 DB 테이블을 파이썬 코드로 관리함, CRUD 작업 이루어짐

Template은 사용자에게 보여질 HTML 페이지를 구성

 

Django Model과 ORM 기법

 

Django는 DB의 Table과 대응되는 모델을 가진다 (Models.py)

ORM 기법을 사용해 DB Table 하나를 Python Class와 대응시키고, 파이썬 문법으로 DB에서 데이터 가져오고 보낸다

 

ORM (Object Relation Mapping)

=> DB의 테이블과 대응되는 Model이라는 개념의 Object를 만들고, 해당 Object로 처리할 데이터를 묶어서 관리하자

=> SQL 구문을 사용할 필요 없이 queryset 문법만 알면 됨

https://docs.djangoproject.com/en/4.1/topics/db/queries/

 

Making queries | Django documentation

The web framework for perfectionists with deadlines.

docs.djangoproject.com

 

Django View

request와 response를 직접 처리하는 공간

views.py 에서 get, post, delete 등의 요청 메서드가 들어왔을 때 서버가 처리해야할 규칙을 정해줘야 함

처리 후 Reponse를 리턴함

 

Django URL

view를 향해 Request를 날리고 Response를 받으려면 URL 매핑이 필요함

View마다 대응하는 URL을 설정해주어야 함 urls.py 에서 !!

 

'web > django' 카테고리의 다른 글

Django SWAGGER 이용해 API 명세 작성하기  (0) 2024.05.08
Django serializer 활용하기  (0) 2024.05.08
Django View 설계하기  (0) 2024.05.07
Django model 생성하고 설정하기  (0) 2024.05.07
Django 프로젝트 세팅하기  (0) 2024.05.07