logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [Django] 데이터 흐름과 기본 파일 분석

    이미지 보기

    [Django] 데이터 흐름과 기본 파일 분석

    • 22.03.02 작성

    • 읽는 데 4

    TOC

    요청과 응답

    URLs : urls.py

    HTTP 요청(request)을 알맞은 view로 전달

    # urls.py
    
    from django.contrib import admin
    from django.urls import path
    
    urlpatterns = [
        path('admin/', admin.site.urls),
    ]
    
    • url을 분석해서 admin/ 이 있으면 이후의 url을 admin.site.urls path 함수로 이동
    • end slash(/)를 반드시 붙여주어야 한다.

    views.py import

    HTTP request가 admin이 아닌 index로 들어오는 경우 메인 페이지를 보여주려고 한다.

    from django.contrib import admin
    from django.urls import path
    # articles 패키지의 views 모듈 import
    from articles import views ⭐
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('index/', views.index),
    ]
    

    views 모듈의 index 함수를 index/ 의 입력의 path함수로 지정

    trailing comma : python 안에서 리스트 내에 ',' comma가 있다. 이후에 바로 작성해서 생산성을 높이기 위함이다.


    View : views.py

    from django.shortcuts import render
    
    def index(request):
        return render(request, 'index.html')
    

    request

    • view 함수가 필수로 받아야 하는 인자
    • client가 server로 보내는 HTTP의 모든 정보
    • return에 render를 사용할 때 첫 인자로 필수로 사용

    templates

    index.html 파일이 없는데 이는 자동으로 만들어지지 않는다.

    template는 자동으로 만들어지지 않는다!

    만들어보자.


    app 폴더에 templates 폴더를 만들고, index.html 파일을 만든다.


    추가 설정 : settings.py

    # Internationalization
    # https://docs.djangoproject.com/en/3.2/topics/i18n/
    
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    

    LANGUAGE_CODE

    • 모든 사용자에게 제공되는 번역 결정
    • USE_I18N활성화되어 있어야 한다.
    LANGUAGE_CODE = 'ko-kr'
    

    TIME_ZONE

    • DB 연결의 시간대를 나타내는 문자열 지정
    • USE_TZ가 True이고 이 옵션이 설정된 경우 DB에서 날짜 시간 읽으면 설정한 시간대의 인식 날짜&시간 반환
    • USE_TZ이 False인 상태로 값 설정 시 에러 발생
    TIME_ZONE = 'Asia/Seoul'
    

    etc

    USE_I18N

    • Django의 번역 시스템을 활성화해야 하는지 여부 지정

    USE_L10N

    • 데이터의 지역화된 형식(localized formatting)을 기본적으로 활성화할 것인지 여부 결정
    • True일 경우, Django는 현재 locale의 형식을 사용하여 숫자와 날짜 표시

    USE_TZ

    • datetimes가 기본적으로 시간대를 인식하는지 여부 지정
    • True일 경우 Django는 내부적으로 시간대 인식 날짜/시간을 사용
    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다