본문 바로가기
Python/Django Ⅰ

Django 주요개념 : 정리

by Mr.DonyStark 2024. 4. 11.

1. Framework 프레임워크
  (1) 장고는 파이썬으로 개발된 오픈 소스 웹 프레임워크
  (2) 기본적으로 모델(Model) - 뷰(View) - 템플릿(Templete) 패턴을 따름. 요소별 역할과 기능이 있음. 또한 각 요소는 서로의 역할에 침범하지 않음. 즉, 업무를 나눔.
    - 모델
    - 템플릿는 웹 페이지
    - 뷰는 사용자가 요청에 따른 응답을 위한 처리역할
  (3) 데이터베이스와 연동된 웹사이트 개발을 초보자라도 편리하고 쉽게 개발할 수 있도록 해주는 것을 목표로함.
  (4) 장점
     - 기본적으로 틀을 생각하면됨
     - 규칙과 가이드대로 개발하며 초보자로 품질(Quality)높은 웹사이트로 개발 가능
     - 안정성, 통합성, 유지보수, 효율성, 단축성, 확장성 등 일관성 있게 추진 가능
     - 유지보수 등을 위한 직원 및 개발팀의 충원이나 연속성이 비프레임워크에 비해 상대적으로 보장됨
  (5) 단점
    - 학습곡선이 만만치 않음
    - 기존 전통방식으로 개발된 웹사이트와 통합하기 쉽지 않음.
    - 모던한 개발 방식이 많아 도입되는 편이라서 전통적인 방식으로 웹개발을 해온 사람에게는 새로움이 많음
    - 규칙과 가이드에서 벗어나는 것을 허용하지 않음. 융통성 X.

 

2. VirtualEnvironment 가상환경
  (1) 웹 개발 프로젝트 시 독립된 환경 구축
  (2) 프로젝트별 사용 라이브러리나 관련 버전들이 다를 수 있는 데 각각의 프로젝트에 맞는 독립된 환경 구축가능
  (3) venv 모듈 사용 : python -m venv 생성하고자하는 가상환경명

python -m venv 가상환경명

 

3. Project vs App(Application) 프로젝트vs앱
  (1) project는 가장 큰 또는 최상위의 웹 개발 디렉토리(폴더)
  (2) 앱 개발 시 최상위 폴더를 생성하고 개발을 해나가는데 이것은 결국 해당 웹사이트의 루트 폴더가 되고 곧 프로젝트임
  (3) 이 안에 여러개의 프로그램 등의 파일 을 만들 수 있는 데 이를 App(앱)dlfkrh qnfma
  (4) 여러개의 앱들이 모여서 하나의 프로젝트가 되고 이는 곧 웹사이트가 됨.
    * 프로젝트 생성 : django-admin startproject 생성하고자하는 프로젝트명
    * 앱 생성 : python manage.py startapp 생성하고자하는 앱명
  (5) 앱(app)이란 무엇인가? : 기본적으로 App=Application=program 같은 의미로 생각하면 됨.
   * 프로젝트는 큰 개념이고 앱은 그 하위의 작은개념임.
   * 큰 프로젝트 안에서 필요한 프로그램들의 단위.
   * 즉, 앱은 프로젝트 내에서 특정한 기능을 수행하는 프로그램 단위.
   *urls.py 는 별도생성해줘야함.(최상위 urlconfig 제외, 최상위는 자동으로 생성됨)
   *└최상위 urls.py → urlpatterns → 앱패스 추가. 기본적으로 path("admin/")이 등록되어있음
   *└ex) 최상위 : "admin/", admin.site.urls
   *└ex) 하위 : "onememos/"어떤 것(view)를 호출할 것" 
   *└기능별 도메인 패턴을 정의해줌. 최상위 urls와 하위 urls 연결을 위해 필요함.
   * include 함수사용. 즉 최상위에서 하위(수동으로 생성된 파일) 파일을 포함시켜야함. [ex)onememos.urls]
   *└다른 URLconF 패스들을 참조할 수 있도록 해주는 함수. 앱 구동 및 연결시 중요한 역할을 하는 함수.

path('admin/', admin.site.urls)
path('onememos/',  include(onememos.urls))  #include 임포트 했는지 꼭 확인해야함. 안하면 서버 구동 시 에러.

 

URLPATTERNS 작업 반드시 진행!!!

 

좌 : app url  /  우 : 프로젝트 최상위 url.py


4. Model 모델
  (1) 데이터 또는 데이터 베이스를 우선적으로 연상
  (2) 장고 프레임워크에서 뿐만 아니라 대부분의 프레임워크에서도 마찬 가지임
  (3) 즉, 장고는 모델을 이용하여 데이터 및 데이터베이스 연동 작업을 처리함
  (4) 일반적으로 프레임워크가 연동작업시 데이터 처리를 위해 SQL 쿼리문을 이용함
  (5) Models.py 에서 파이썬 코드 작성을 통해 DB 통제
  (6) 장고의 모델을 사용하면 기존의 SQL 쿼리문과 같은 것 없이 데이터 처리 및 DB연동이 가능함

 

 

자세한 내용은 아래 링크 확인할 것

https://dandora-90.tistory.com/232

 

장고란?(feat.MTV모델)

□ 마감시간이 있는 완벽주의자를 위한 웹프레임워크 □ 바퀴를 다시발명하지마라 ○ 초기 학습비용은 있지만 매번 새롭게 바퀴를 재발명 안함 ○ 장고라는 바퀴를 잘굴려 빠르고 정확하게 동

dandora-90.tistory.com

 

'Python > Django Ⅰ' 카테고리의 다른 글

SQLite 를 활용한 DB 조회  (0) 2024.04.15
서브페이지 URLPATTERNS  (0) 2024.04.15
Models 생성  (0) 2024.04.13
가상환경 설치 & 장고 설치+삭제 & 서버구동 + superuser 생성  (0) 2024.04.08
장고란?(feat.MTV모델)  (0) 2024.02.04