728x90
URLS
- 요청이 들어오면 HTTP 요청(request)을 알맞은 view로 전달
- urls.py - urlpatterns 리스트에 path함수로 추가
- path 함수는 위에서부터 차례대로 탐색해서 매칭되면 바로 실행
# firstpjt > urls.py
from django.contrib import admin
from django.urls import path
# articles 앱의 view를 import
from articles import views
urlpatterns = [
# path 함수의 첫 번째 인자 : 사용자가 들어오는 경로
# path 함수의 두 번째 인자 : 해당 경로로 들어왔을 때 실행할 함수
path('admin/', admin.site.urls),
path('index/', views.index),
]
Views
- HTTP 요청을 수신하고 HTTP 응답을 반환하는 함수 작성
- Model을 통해 요청에 맞는 필요 데이터에 접근
- Template에게 HTTP 응답 서식을 맡김
- views.py 에 함수 정의
- 간단하게 한 줄로 응답하기
# articles > views.py
from django.http import HttpResponse
# view에서 정의되는 함수의 첫 번째 인자는 항상 request
def index(request):
return HttpResponse('안녕하세요!')
- render 이용
- render 첫 번째 인자 : request
- render 두 번째 인자 : html 파일의 경로
- render 세 번째 인자 : html에 넘겨줄 딕셔너리 객체
('html에서 사용할 이름' : 함수 내부의 객체 / 또는 context 딕셔너리를 만들어서 넘겨줌)
# articles > views.py
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
def greeting(request):
name = '춘식'
age = 10
return render(request, 'greeting.html', {'name':name, 'age':age})
def greeting(request):
name = '춘식'
age = 10
info = {
'hobby' : 'dance',
'freind' : 'lion'
}
context = {
'name' : name,
'age' : age,
'info' : info
}
return render(request, 'greeting.html', context)
Templates
- 실제 내용을 보여주는데 사용되는 파일
- 파일의 구조나 레이아웃을 정의 (ex : HTML)
- Template 파일 경로의 기본 값은 app 폴더 안의 templates 폴더로 지정되어 있음
- templates.py 에 html 파일 생성
<!-- articles > templates > index.html -->
<h1>만나서 반가워요!</h1>
추가 설정
- LANGUAGE_CODE
- 모든 사용자에게 제공되는 번역을 결정
- 이 설정이 적용되려면 USE_18N이 활성화 되어있어야 함
- 기본 값은 'en-us'
- TIME_ZONE
- 데이터베이스 연결의 시간대를 나타내는 문자열 지정
- 이 설정이 적용되려면 USE_TZ가 True여야 함, False인 상태로 값을 설정하면 error
- 기본 값은 'UTC'
- USE_18N
- Django의 번역 시스템을 활성화해야 하는지 여부를 지정
- 국제화
- USE_L10N
- 데이터의 지역화 된 형식(localized formatting)을 기본적으로 활성화할지 여부를 지정
- True일 경우, Django는 현재 locale의 형식을 사용하여 숫자와 날짜를 표시
- USE_TZ
- datetimes가 기본적으로 시간대를 인식하는지 여부를 지정
- True일 경우, Django는 내부적으로 시간대 인식 날짜 / 시간을 사용
# firtstpjt > settings.py
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True
USE_L10N = True
USE_TZ = True
728x90
'PROGRAMMING > Django' 카테고리의 다른 글
[Django] URL, namespace (0) | 2021.09.02 |
---|---|
[Django] HTML Form (0) | 2021.09.02 |
[Django] DTL(Django Template Language), Template 상속 (0) | 2021.09.02 |
[Django] 가상환경 / 프로젝트 / 애플리케이션 생성 (0) | 2021.09.01 |
[Django] 웹 프레임워크, MVC/MTV Pattern (0) | 2021.09.01 |
댓글