Django 보기 및 URL

Django의 보기는 웹 기반 요청을 받고 웹 응답을 반환하는 클래스 또는 함수입니다. 사용자 인터페이스를 제공합니다.
예를 들어 사용자가 사이트를 방문하고 브라우저를 통해 정보 페이지를 요청합니다. 브라우저는 urls.py 파일에 요청을 보냅니다. 이 urls 파일은 브라우저 요청에 따라 올바른 피드백을 결정한 다음 브라우저에 응답을 반환하는 views.py 파일에 URL을 전달합니다. 더 나은 이해를 위해 아래 이미지를보십시오.


Django에는 Python 함수를 활용하는 클래스 기반 뷰와 Python 함수를 활용하는 함수 기반 뷰의 두 가지 유형의 뷰가 있습니다. 이 기사에서는 함수 기반 보기에 중점을 둘 것입니다.

Django에서 함수 기반 보기를 만드는 방법.



이미 Django 가상 환경을 만들었다고 가정합니다. 그렇지 않다면 이 . 다음으로 다음 명령을 실행하여 애플리케이션을 생성합니다.python manage.py startapp app-name.

보기 쓰기



애플리케이션 폴더 내에서 views.py 파일로 이동하여 잠시 후에 설명할 아래 코드를 추가합니다.

from django.shortcuts import render
from django.http import HttpResponse

def Home(request):
    return HttpResponse('High Five! You wrote your first view')



코드 설명
두 번째 줄에서 HttpResponse를 가져오면 views.py가 사용자에게 응답을 보낼 수 있습니다.
세 번째 줄에서는 Home이라는 이름으로 일반적인 파이썬 함수를 정의합니다. 노트; 함수에 아무 이름이나 지정할 수 있습니다. 함수는 함수가 호출될 때 함수에 제공된 요청 객체인 'request' 매개변수를 받습니다. 마지막으로 Home 함수는 문자열을 반환합니다.

urls.py에 뷰 등록



급하게 서버를 실행하셨다면 아직 별 차이가 없고 브라우저에서 뷰가 보이지 않는 것을 눈치채셨을 것입니다. 뷰의 존재를 urls.py에 알려야 하기 때문입니다. 어떻게 합니까?
먼저, inventoryapp(애플리케이션 이름) 폴더 안에 urls.py 파일을 만듭니다. 이제 파일이 다음과 같이 정렬되어야 합니다.

생성한 url.py 파일에 아래 코드를 추가합니다.

from django.urls import path

from . import views
urlpatterns = [
    path('', views.Home, name='home')
]


코드 설명;
첫 번째 줄에서는 나중에 사용할 경로 기능을 가져옵니다.
두 번째 줄에서 뷰를 가져옵니다. 점(.)은 현재 디렉터리에서 views.py를 가져옴을 의미합니다. 뷰를 정의한 것이 이 views.py에 있음을 기억하시기 바랍니다.
다음 줄에는 프로젝트의 모든 URL 배열을 받는 urlpatterns 키워드가 있습니다. urlpatterns 배열 내에서 경로 함수는 특정 URL을 탐색할 때 표시될 정확한 보기를 정의하는 데 사용됩니다. 쉽게 참조할 수 있도록 항상 뷰의 이름을 지정하는 것이 좋은 코딩 방법입니다.
한 걸음 더…
다음 단계는 인벤토리 앱 URL에 대한 프로젝트 URL을 알리는 것입니다. 프로젝트 폴더로 이동하여 urls 파일을 편집합니다.

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('inventoryapp', include('inventoryapp.urls')),
    path('admin/', admin.site.urls),
]


Django의 include() 함수



우리는 프로젝트 URL에 앱 URL을 추가하는 데 사용한 위의 코드에서 include() 함수를 가져왔습니다. Django documentation에 따르면 "include()는 해당 지점까지 일치하는 URL 부분을 잘라내고 추가 처리를 위해 포함된 URLconf에 나머지 문자열을 보냅니다."

그러나 그것이 정확히 무엇을 의미합니까?
사용자가 이 URL/polls/5/vote/에 대해 요청한 예를 들어보십시오.
다음 URLConf에서
url(r'^polls/', include('polls.urls'))
include()는/5/vote로 남아 있는 요청된 URL에서 polls/를 잘라내고 추가 처리를 위해 나머지 부분을 앱 URL 및 보기로 보냅니다.
마지막으로 python manage.py runserver 명령을 사용하여 서버를 실행합니다. 인벤토리 앱 확장을 추가하여 보기 즉, http://127.0.0.1:8000/inventoryapp

최종 단어



함수 기반 뷰를 작성하는 방법에 대한 이 가이드를 따라하는 데 어려움이 없었기를 바랍니다.
댓글을 남겨주시면 세상이 저에게 큰 힘이 됩니다, 제발!

좋은 웹페이지 즐겨찾기