Django에서 동적 라우팅을 사용하는 방법

Django에서 동적 라우팅을 사용하는 방법
당신과 같은 독자는 MUO를 지원하는 데 도움이 됩니다. 귀하가 당사 사이트의 링크를 사용하여 구매할 때 당사는 제휴 수수료를 받을 수 있습니다.

동적 라우팅이 없으면 웹 페이지를 탐색하기 어려울 것입니다. 브라우저에서 방문하는 모든 페이지의 전체 경로를 입력해야 합니다. 끔찍한 사용자 경험입니다.





동적 URL(Uniform Resource Locator)을 사용하면 버튼 클릭으로 앱의 다른 페이지로 이동할 수 있습니다. Django를 사용하면 동적 URL을 쉽게 디자인할 수 있습니다. URL 표현식을 보기에 연결하는 URL 구성 모듈(URLconf)이 있습니다.





Xbox One 컨트롤러를 수정하는 방법
MAKEUSEOF 오늘의 비디오

URLconf의 모든 코드는 Python 구문으로 되어 있어 동적 URL을 쉽게 생성할 수 있습니다. Django 프로젝트를 빌드하여 동적 URL에 대해 자세히 알아보겠습니다.





1. Django 프로젝트 생성

첫 번째, Django 프로젝트 생성 및 응용 프로그램(앱).

앱 이름 지정 보마워치 . 앱은 다양한 지역에서 위치, 설명 및 주민 번호를 수집합니다. 이라는 모델을 생성합니다. 이웃 . 모델을 사용하여 이웃에 대한 정보를 데이터베이스에 추가합니다. 하는 법을 배우다 Django에서 모델 생성 익숙하지 않은 경우 데이터베이스.



다음으로, 이웃에 대한 보기 기능을 만듭니다.

2. 보기 기능 만들기

Django에서 보기는 HTTP 요청을 받고 응답을 반환하는 Python 함수입니다. Django로 구동되는 웹 페이지에서 뷰는 다양한 작업과 임무를 수행합니다.





뷰를 실행하려면 URL을 통해 호출해야 합니다. URL은 웹상의 리소스에 대한 고유한 경로입니다. 리소스는 HTML 페이지, 이미지 또는 API 끝점일 수 있습니다.

전달된 매개변수를 기반으로 이웃 데이터를 검색하는 URL을 작성하십시오. 이렇게 하려면 다음을 사용할 수 있습니다. 기본 키(pk) 또는 신분증(아이디) 정보를 검색합니다. 이를 위해 하나의 템플릿을 사용합니다.





라는 파일에서 뷰를 정의하여 뷰를 생성할 수 있습니다. 보기.py 앱의 폴더에 있습니다. 가져오기 시작 세우다 Django의 함수를 사용하여 URL에 데이터를 표시합니다. 또한 수입 이웃 모델 model.py .

from django.shortcuts import render 
from .models import NeighbourHood

다음으로 이름이 지정된 보기 함수를 만듭니다. 홈 템플릿의 모든 이웃을 표시합니다. 그만큼 NeighborHood.objects.all() 함수는 데이터베이스에서 모든 이웃에 대한 데이터를 수신합니다.

def home(request): 
neighborhoods = NeighbourHood.objects.all()
return render (request, "home.html", {'neighborhoods':neighborhoods})

또한 보기 기능을 생성합니다. 조인후드 그것은 이웃의 정보를 표시합니다. 그만큼 NeighbourHood.objects.get(id=id) 함수는 ID에 따라 데이터를 요청합니다. 그런 다음 정보가 템플릿에 렌더링됩니다.

def join_hood(request, id): 
neighborhood = NeighbourHood.objects.get(id=id)
return render (request, 'join_hood.html', {'neighborhood':neighborhood})

나중에 동네로 이동하면 해당 지역의 프로필 정보를 볼 수 있습니다.

3. 동적 URL 생성

이제 생성한 보기 기능에 대한 동적 URL을 생성할 수 있습니다.

from django.urls import path 
from . import views
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
path ('home', views.home, name='home'),
path ('join_hood/<str:id>/', views.join_hood, name='join_hood'),
]

if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

수입 Django URL에서 뷰의 경로를 생성합니다. 그런 다음 다음에서 보기 기능을 가져옵니다. 보기.py .

그만큼 조인후드 URL에 꺾쇠 괄호 안에 자리 표시자가 있습니다. . 이렇게 하면 URL의 해당 부분을 캡처하여 보기로 보냅니다.

꺾쇠 괄호에는 일반적으로 변환기 사양이 포함됩니다. 사양은 문자열일 수 있습니다. (str) 또는 정수(int). Django도 제공합니다. 슬러그, 경로 , 또는 보편적으로 고유한 식별자 (uuid). 사양은 URL에서 보기에 전달되는 변수 유형 또는 문자 수를 제한합니다.

URL에 이름을 지정하면 템플릿에서 URL을 식별하는 데 도움이 됩니다.

그만큼 공전 그리고 정적 파일 가져오기는 URL 경로에 정적 파일을 표시합니다. 공식에서 URL 매개변수를 구성하는 방법에 대해 자세히 알아보기 장고 선적 서류 비치.

4. 템플릿에 URL 추가

URL에 보기 기능을 추가했으면 데이터를 표시할 HTML 템플릿을 만듭니다. 템플릿의 이름을 지정합니다. join_hood.html .

{% extends "base.html" %} 

{% load static %}

{% block content %}
<div class="card mb-3" style="max-width:fit content;">
<div class="row g-0">
<div class="col-md-4">
<div class="col-md-8" >
<div class="card-body">
<h5 class="card-title"> Welcome!</h5>
<p class="card-text pt-4"> Name: {{neighbourhood.name}}</p>
<p class="card-text pt-4"> Location: {{neighbourhood.location}}</p>
<p class="card-text pt-4"> Description: {{neighbourhood.description}}</p>
<p class="card-text pt-4"> Health Tel:{{neighbourhood.health_tell}}</p>
<p class="card-text pt-4"> Police Number: {{neighbourhood.police_number}}</p>
<p class="card-text pt-4"> Residents : {{neighbourhood.Count}}</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

생성 조인후드 앱 폴더에 템플릿을 추가하여 이웃 데이터를 표시합니다. 첫째, 연장 base.html 템플릿의 스타일을 지정하는 데 사용할 스타일 시트(부트스트랩)가 있는 템플릿. 그런 다음 페이지에 정보를 표시할 변수를 렌더링합니다.

다음으로 생성 home.html 모든 이웃을 표시할 템플릿입니다.

{% extends 'base.html' %} 

{% load static %}

{% block content %}
<div class="container" style="color:black;">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.neighborhood.name}}">

<div class="row">
{% for neighborhood in neighborhoods %}
<div class="col-md-4">
<div class="card mb-4" style="min-height:340px">
<img src="{{neighborhood.hood_logo.url}}" class="card-img-top" alt="{{user.hood.name}}">

<div class="card-body">
<h5 class="card-title">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{neighborhood.Count}} member{{neighborhood.members.count|pluralize}}</span>
</h5>

<p class="card-text">{{neighborhood.description}}</p>
<p class="card-text">{{neighborhood.member.Count}}</p>

<a href="{% url 'join_hood' neighborhood.id %}" class="btn btn-primary btn-sm">Join Hood</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

홈 페이지에서 이웃에 대해 표시하려는 모든 정보를 렌더링합니다. 홈 페이지에 버튼과 앵커 태그를 추가합니다. 앵커 태그에는 URL이 있습니다. 이름 그리고 이웃 아이디 .

버튼을 클릭하면 해당 ID의 이웃으로 이동합니다. 홈 템플릿은 URL http://127.0.0.1:8000/home/. The picture below demonstrates this page에 나타납니다.

  홈 페이지에는 모든 이웃이 표시됩니다.

5. 동적 라우팅 테스트

이제 템플릿에서 동적 라우팅이 작동하는지 테스트할 수 있습니다. 클릭하면 후드에 가입 버튼으로 이동합니다. 조인후드 주형. 그만큼 조인후드 템플릿은 선택한 이웃에 대한 프로필 정보를 표시합니다.

또한 브라우저 URL http://127.0.0.1:8000/join_hood/2/에 표시된 이웃의 ID를 볼 수 있습니다.

아래와 같이 표시됩니다.

  join_hood 페이지는 브라우저에 이웃의 세부 정보를 표시합니다.

축하합니다! 동적 URL을 만들었습니다.

Django URL을 사용하는 이유

동적 URL은 웹 애플리케이션에서 중요한 기능입니다. Django를 사용하면 필요에 따라 URL을 쉽게 디자인할 수 있습니다. 다른 프레임워크와 연결할 수 있는 제한 사항을 제거합니다.

URLconf 모듈은 Django URL 생성을 지원하는 리소스로 가득합니다. 또한 템플릿에서 정적 파일을 더 쉽게 제공하고 오류 처리를 개선합니다.

현금 앱을 삭제하는 방법

Django에는 백엔드 애플리케이션을 최적화하도록 설계된 다른 기능이 있습니다. 다른 기능 중에서 사용자 인증, 콘텐츠 관리 및 사이트 맵을 자동화합니다.