1 minute read

  • view

    Django 앱이 일반적으로 특정 기능과 템플릿을 제공하는 웹 페이지의 한 종류

    웹 페이지와 다른 컨텐츠들은 view로 전해짐

    각 view 는 Python function(메소드나 클래스 기반 뷰) 로 이루어짐

    • URL

      Django는 요청된 URL 들을 검사하는 식으로 view를 선택함

      패턴은 전형적인 형태

      • <\URLconfs’

        URL로부터 view얻기위해 사용

        URL 패턴을 뷰에 연결

  • view 추가

    view에 함수 생성

    urls.py 에서 path() 모듈 추가하고 연결

    • 요청 처리 순서

      1. 사용자가 웹 사이트 패이지 요청

      2. DJango는 루트에서 파이썬 모듈 불러옴(ROOT_URLCONF 설정에 의해 해당 모듈 바라보도록 지정)

      3. urls 에서 urlpatterns 라는 변수 찾고 순서대로 패턴 따라감

      4. 일치하는 패턴 찾은 후 일치하는 텍스트 버리고 남은 텍스트를 URLconf로 전달하여 남은 처리 진행

      5. 해당 뷰 함수 호출

  • 뷰에 기능 더하기

    각 view는 HttpResponse(요청된 페이지의 내용이 담긴 객체)반환하거나 예외를 발생하게 해야 함

    view 내부에서 여러 처리 가능

    • 템플릿

      Python 코드로부터 디자인을 분리하는 기능

      • context

        템플릿에서 쓰이는 변수명과 Python 객체를 연결하는 사전형 값

      • render

        템플릿에 context 채워넣어 표현한 결과를 HttpResponse 객체를 함께 돌려주는 구문의 단축 기능

    • 에러 일으키기

      해당 요청에 대하여 알맞은 HTTP에러 발생

      • get_object_or_errorNumber()

        해당 에러 발생 시 get() 사용하여 에러 발생시키는 구문의 단축 기능

      • 도움 함수와 에러 객체

        상위 계층에서 예외 자동을 잡아내는 대신 사용

        model 계층을 view 계층에 연결하는 방법

        약결합을 관리하기 위해 사용

  • 템플릿 시스템

    변수의 속성에 접근하기 위해 점-탐색 문법 사용

    • 점-탐색 문법

      1. 객체에 대해 사전형으로 탐색

      2. 없을 시 속성값으로 탐색

      3. 없을 시 list에서 탐색

    • 하드코딩된 URL 제거

      • url template 태그

        path() 함수에서 이름 설정해서 url 설정에 정의된 특정 URL 경로들의 의존성 제거

      • URL 이름 공간 정하기

        다른 앱의 중복되는 URL 방지

        urls.py 파일에 app_name 추가하고 이름 공간으로 나눠진 상세 뷰 가리키도록 변경 가능

Categories:

Updated: