HTML 템플릿 및 보기 만들기 | Django CMS 빌딩 By shriekdj
urls.py
및 views.py
사용 방법을 보여줍니다.먼저 django 앱의
templates
앱에 blog
라는 폴더를 만들고 아래와 같이 django_project_name/setting.py
의 변수 업데이트를 추가합니다.import os # add it at the top of settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # at here add templates folder
'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',
],
},
},
]
아래와 같이
index.html
를 생성합니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
이제 파일
blog/views.py
로 이동하고 아래와 같은 새 함수를 생성하여 원하는 이름을 지정할 수 있습니다.from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, 'index.html')
여기서는 index라는 함수를 사용하여 인덱스 페이지를 렌더링하고 있습니다. 파일 이름과 동일한 이름을 지정하는 것이 필수는 아니지만 위치를 기억하는 데 도움이 됩니다. 위 함수에서 우리는 매개변수
index.html
를 제공하고 있습니다. 이는 클라이언트 브라우저에서 데이터를 가져오기 위한 것이고 우리는 서버로서 이 함수에서 로직을 작성합니다.또한 이 페이지를 보려면 2단계가 더 필요합니다.
먼저 블로그 폴더에
request
를 생성하고 아래 코드를 작성합니다.from django.urls import path
from blog import views
urlpatterns = [
path('', views.index)
]
여기에서 우리는
urls.py
변수의 모든 URL을 로드하고 있으며 빈 경로는 블로그 앱의 홈페이지에 있음을 의미합니다.그리고 At Last At the
urlpatterns
우리는 약간의 수정이 필요합니다. 둘 다 파일 이름은 같지만 폴더가 다릅니다. 이django_project/urls.py
는 전체 사이트의 메인urls.py
라우팅 파일입니다. 아래 주어진 것처럼 변경from django.contrib import admin
from django.urls import include ,path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls'))
]
여기에서 특수
url
기능을 사용하여 사이트의 전역 경로를 추가해야 합니다. 관리자와 유사하게 직접 추가하면 작동하지 않습니다. 이제 아래 제공된 include
스크린샷으로 사이트를 로드합니다.이것을 분명히 본다면 나는 상대 가져오기를 사용하지 않았습니다. 그것은 미래에 생산 모드에서 약간의 오류를 일으킬 수 있으며 모든 상대 가져오기를 절대 가져오기로 수동으로 업데이트해야 합니다.
하지만 함수 기반 대신 클래스 기반 뷰를 주로 사용하므로 `views.py에서 My
python ./src/manage.py runserver
함수를 다음과 같이 변경합니다.index
`python
from django.shortcuts import render
from django.views import View
여기에서 보기를 만드세요.
class IndexView(View):
def get(self, request, *args, **kwargs):
return render(request, 'index.html')
`
뷰 클래스를 변경하고
Here all the logic of the code get into get method
아래의 urlpatterns
를 아래와 같이 변경합니다.
blog/urls.py
`python
from django.urls import path
from blog import views
urlpatterns = [
path('', views.IndexView.as_view(), name='index_view'),
]
`
It will not change look of the page at all as of now but in future we can use inheritance like features with it.
In Class View
메서드는 GET 요청을 의미하며 분명히 get
와 같은 다른 request methods
가 있습니다.
및 ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
메서드는 한 클래스의 요청 메서드에 따라 응답을 반환합니다.
차징 뷰 어게인
as_view()
`python
from django.views.generic.base import TemplateView
여기에서 보기를 만드세요.
class IndexView(TemplateView):
template_name: str = 'index.html'
# def get(self, request, *args, **kwargs):
# return render(request, 'index.html')
`
you can seet the code it reduced if we are returning the render function.
Actually views function have the specific way of returning pages like given below.
python
def my_view_function(request):
context_to_send_html= {"data sent to our template": "some-data" }
return render(request, 'template_file_name.html', context_to_send_html)
Reference
이 문제에 관하여(HTML 템플릿 및 보기 만들기 | Django CMS 빌딩 By shriekdj), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shriekdj/creating-html-template-and-views-django-cms-building-by-shriekdj-48lb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)