반응형
View
기능을 담당 ( 페이지 단위 )
화면이 나타나는 뷰, 화면이 없는 뷰
화면이 있건 없건 주소 URL은 있어야 한다.
뷰 내용( 함수, 클래스 ), URL이 있으면 동작한다.
뷰의 코드 형식
함수형
- request를 매개변수로 받고( 추가 매개변수 가능 ), 모양은 함수.
- 내가 원하는대로 동작들을 설계하고 만들고 싶을 때 사용.
클래스형
- CRUD
- 기존에 많이 사용하는 기능을 미리 클래스로 만들어두고 상속받아서 사용한다.
- 장고의 제네릭 뷰를 많이 사용
기본 구조
실습
1. 따로 url 설정을 안한 페이지
views.py
from django.http import HttpResponse
def index(request):
# 어떤 계산이나, 데이터베이스 조회, 수정, 등록
# 응답 메시지를 만들어서 반환.
# html 변수를 대신해서 템플릿 사용 가능
html = "<html><body>Hi django</body></html>"
return HttpResponse(html)
urls.py
from django.contrib import admin
from django.urls import path
from .views import index
urlpatterns = [
path('admin/', admin.site.urls),
path("", index),
# path(주소, 뷰, 주소의 별명)
]
결과
2. url 설정 한 페이지
views.py
from django.http import HttpResponse
def index(request):
# 어떤 계산이나, 데이터베이스 조회, 수정, 등록
# 응답 메시지를 만들어서 반환.
# html 변수를 대신해서 템플릿 사용 가능
html = "<html><body>Hi django</body></html>"
return HttpResponse(html)
def welcome(request):
html = "<html><body>Welcome to django</body></html>"
return HttpResponse(html)
urls.py
from django.contrib import admin
from django.urls import path
from .views import index, welcome
urlpatterns = [
path('admin/', admin.site.urls),
path("", index),
path("welcome/", welcome),
# path(주소, 뷰, 주소의 별명)
]
결과
3. 템플릿 설정
- html 파일 등을 따로 만들어 둔 후, 해당 디렉토리의 파일로 연결
settings.py
...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#템플릿이 들어있는 폴더 지정 가능(여러개)
'DIRS': [
os.path.join(BASE_DIR, 'templates')
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
...
views.py
from django.http import HttpResponse
#템플릿을 렌더링
from django.shortcuts import render
def index(request):
# 어떤 계산이나, 데이터베이스 조회, 수정, 등록
# 응답 메시지를 만들어서 반환.
# html 변수를 대신해서 템플릿 사용 가능
html = "<html><body>Hi django</body></html>"
return HttpResponse(html)
def welcome(request):
html = "<html><body>Welcome to django</body></html>"
return HttpResponse(html)
def template_test(request):
# 기본 템플릿 폴더
# 1. admin 앱
# 2. 각 앱의 폴더에 있는 templates 폴더
# 3. 설정한 폴더
return render(request, 'test.html')
urls.py
from django.contrib import admin
from django.urls import path
from .views import index, welcome, template_test
urlpatterns = [
path('admin/', admin.site.urls),
path("", index),
path("welcome/", welcome),
path("test/", template_test)
# path(주소, 뷰, 주소의 별명)
]
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
이것은 템플릿 연습 파일입니다.
</body>
</html>
결과
연습해볼것들.
함수형 뷰 만들기, 템플릿 만들기, URL 연결하기, 브라우저로 접속해보기
반응형
'Language > Python&Django' 카테고리의 다른 글
[장고] 장고(Django) 를 공부할 때 필요한 기본지식 (0) | 2021.10.29 |
---|---|
[파이썬] join() 을 이용해 문자열 사이에 구분자(특정문자) 넣기 (1) | 2021.08.20 |
[파이썬] 리스트 출력 : 한줄에 하나의 요소씩 출력하는 방법 (2) | 2021.07.29 |
파이썬 코드 실행 시간 측정해보기 (초단위) (0) | 2021.07.13 |
파이썬에서 2차원 리스트를 생성할 때 주의해야할 점. (0) | 2021.02.10 |
댓글