TIL - 34 django -1

이동근·2021년 1월 23일
0

django

목록 보기
1/12

django

django를 사용하기전에 django가 무엇인지... 왜 사용하는지...를 먼저 이야기 하고싶다.

django는 파이썬으로 만들어진 무료 오픈 소스 웹 애플리케이션 프레임워크 입니다. 쉽고 빠르게 웹사잍를 개발 할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크입니다. 웹페이지를 만들때 회원가입, 로그인, 로그아웃과 같이 사용자 인증을 다루는 방법이나 웹사이트의 관리자 패널, 폼 파일 업로드와 같은 것들을 한 번에 하기 위해 바로 사용할 수 있는 구성요소를 갖춘 여러 프레임 워크 중 한개이다.

HTTP가 Request를 URLS(urls.py)에 하면 View(viewpy)에 Forward request to appropriate view(적절한 view 값을 요청) 한다. 그럼 view.py에서 Model(models.py)에 데이터를 쓰거나 읽는다. 즉 view에서 데이터의 중간 허브 역활을 한다. (model.py, Template, HTTP Response)

Url.py - 요청을 알맞은 뷰로 전달

  • 단일 함수를 통해 모든 URL요청을 처리하는 것이 가능하지만 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽습니다. URL mapper는 요청 RUL을 기준으로 HTTP 요청을 적절한 뷰로 보내주기 위해 사용됩니다. 또한 URL에 나타나는 특정한 문자열이나 숫자의 패턴을 일치시켜 데이터로서 뷰 함수에 전달 할 수 있습니다.
  • URL mapper는 보통 urls.py라는 파일에 저장되어 있습니다.
  • urlpatterns 맵퍼는 경로들(특정 URL 패턴들)과 해당하는 뷰 함수에 대한 맵핑 목록들을 정의합낟. 만약 지정된 URL 패턴과 일치하는 HTTP 요청이 수신된다면 관련된 view 함수가 요청을 전달 합니다.
urlpatterns = [
       path('admin/', admin.site.urls),
       path('book/<int:id>', views.book_detail, name='book_detail')
       path('catalog/', include('catalog.urls')),
       re_path(r'^([0-9]+)/$', views.best),
       ]
  • urlpatterns 객체는 path()함수와 re_path() 함수를 항목으로 가지는 리스트입니다. 두 메소드(paht(), re_path())의 첫 번째 인수는 일치시킬 경로 입니다. 이 인수는 URL의 한 부분으로, 명명된 인수로 수집되어 뷰 함수로 보내집니다. re_path() ㅎ마수는 정규식이라는 유연한 패턴 매칭 접근을 사용합니다.
  • 두 번째 인수는 패턴이 일치할 때 호출되는 다른 함수입니다. views.book_detail은 이 함수가 book_detail()이며 views 모듈 안에서 찾을 수 있다는 것을 나타냅니다.('.'을 통해 경로를 이어준다. view 파일에 있는 book_detail 함수를 호출)

views.py - 요청 처리하기, 데이터 쿼리하기, 실질적으로 프로그램 로직이 동작하여 적절한 처리결과를 Template에 전달하는 역할 수행(중간관리자, main heart)

  • view 뷰는 HTTP 요청을 수신하고 HTTP 응답을 반환 하는 요청 처리 함수 입니다. 뷰는 model을 통해 요청을 충족시키는데 필요한 데이터에 접근합니다. 그리고 Template에는 응답의 서식 설정을 맡깁니다.
  • view들은 웹 클라이언트 로부터 HTTP 요청을 수신하고 HTTP 응답을 되돌려주는 웹 어플리케이션의 심장입니다. 그 사이에 그들은 데이터베이스에 접근하고 템플릿을 렌더링하기 위해 프레임워크의 다른 자원들을 정리합니다.
  • 데이터베이스를 간단히 탐색하기 위한 쿼리 API를 제공합니다. 이 API는 다양한 조건을 통해 수 많은 필드를 빠르게 매칭시킵니다.

models.py - 데이터 모델 정의 하기, 데이터베이스에 저장되는 데이터의 영역(데이터관리)

  • 모델은 응용프로그램의 데이터 구조를 정의하고 데이터베이스의 기록을 관리(추가,수정,삭제) 하고 쿼리하는 방법을 제공한느 파이썬 객체 입니다.
  • 모델은 필드 타입과 그들의 최대크기, 기본 값들 선택 목록 옵션, 문서의도움말 텍스트, form을 위한 labe text 등을 포함하여 저장된 데이터의 구조를 정의합니다. 모델의 정의는 기본 데이터베이스와 별개 입니다. 그저 모델 구조와 다른 코드들을 작성하면, 장고가 당신과 데이터베이스가 소통하는데 필요한 모든 더러운 작업들을 처리합니다.

template - 데이터 렌더링(HTML 템플릿), 사용자에게 보여지는 영역

  • 파일의 구조나 레이아웃을 정의하고, 실제 내용을 보여주는 데 사용되는 텍스트 파일입니다. view는 HTML 탬플릿을 이용하여 동적으로 HTML페이지를 만들고 모델에서 가져온 데이터로 채웁니다. (꼭 HTML 파일일 필요는 없습니다.)
  • 템프릿 시스템을 사용하면 페이지가 생성될 때 채워질 데이터에 자리 표시자를 사용하여 출력문서의 구조를 지정할 수 있습니다.

django 사용을 위한 가상환경 설치

가상환경? - 하나의 PC에서 프로젝트별로 독립된 파이썬 실행 환경을 사용할 수 있도록 해준다. 가상환경을 사용하지 않으면 PC내의 모든 프로젝트에서 운영체제에 설치된 하나의 파이썬 런타임을 사용하게 ㅗ디고 동일한 위치에 외부 패키지를 설치하고 서로 공유하게 된다. 이럴경우 기존 프로젝트에서 설치한 패키지 버전과 다른 프로젝트에서 설치한 동일 패키지의 다른 버전과 충돌을 일으킬수 있따.

profile
하루하루 1cm 자라는 개발자

0개의 댓글