Как да използвате динамично маршрутизиране с Django

Как да използвате динамично маршрутизиране с Django
Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор.

Без динамично маршрутизиране навигирането в уеб страниците би било трудно. Ще трябва да въведете пълния път на всяка страница, която посещавате в браузъра. Какво ужасно потребителско изживяване.





Динамичните унифицирани локатори на ресурси (URL) ви позволяват да навигирате до различни страници на приложение с едно натискане на бутон. Django улеснява проектирането на динамични URL адреси. Той има модул за конфигуриране на URL (URLconf), който свързва URL изрази с изгледи.





MAKEUSEOF ВИДЕО НА ДЕНЯ

Целият код в URLconf е в синтаксиса на Python, което улеснява създаването на динамични URL адреси. Нека научим повече за динамичните URL адреси, като изградим Django проект.





1. Създайте Django проект

първо, създайте Django проект и приложение (приложение).

Дайте име на приложението си Boma-часовник . Приложението ще събира местоположение, описание и номера на жители от различни квартали. Създайте модел с име Съседство . Използвайте модела, за да добавите информация за кварталите в база данни. Научете как да създавайте модели в Django и базата данни, ако не сте запознати.



как да играете стари компютърни игри на windows 10

След това създайте функция за изглед за кварталите.

2. Създайте функция за изглед

В Django изгледите са функции на Python, които приемат HTTP заявки и връщат отговори. На уеб страница, поддържана от Django, изгледите изпълняват разнообразни задачи и мисии.





За да изпълните изглед, трябва да го извикате чрез URL адрес. URL адресът е уникален път към ресурс в мрежата. Ресурсът може да бъде HTML страница, изображение или крайна точка на API.

Създайте URL, който извлича данни за квартала въз основа на предадените параметри. За да направите това, можете да използвате първичен ключ (pk) или Идентификация (id) за извличане на информацията. Ще използвате един шаблон, за да направите това.





Можете да създавате изгледи, като ги дефинирате във файл, наречен views.py в папката на приложението. Започнете с импортиране на изобразявам функция от Django за показване на данни в URL адреса. Също така импортирайте Съседство модел от models.py .

from django.shortcuts import render 
from .models import NeighbourHood

След това създайте функция за изглед с име У дома който показва всички квартали в началния шаблон. The NeighborHood.objects.all() функцията получава данни за всички квартали от базата данни.

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

Също така създайте функция за изглед за join_hood който ще показва информация за квартала. The 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})

По-късно, когато навигирате до квартал, ще можете да видите информацията за неговия профил.

могат ли други хора да видят спомени от snapchat

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 адреси, за да създадете пътища за изгледа. След това импортирайте функциите за преглед от views.py .

The join_hood URL адресът има контейнер в ъглови скоби: . Това улавя тази част от URL адреса и го изпраща към изгледа.

Ъгловите скоби обикновено включват спецификация на конвертора. Спецификацията може да бъде или низ (str) или цяло число (int). Django също предлага плужек, пътека , или универсални уникални идентификатори (uuid). Спецификацията ограничава вида на променливата или броя на знаците, предавани в URL адреса към изгледа.

Даването на име на URL адресите ще помогне за идентифицирането им в шаблоните.

The статичен и статични файлове импортира статични файлове за показване на 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 %}

Създайте join_hood шаблон в папката на приложението за показване на данните за квартала. Първо, удължете база.html шаблон със стилови таблици (bootstrap), които ще използвате за стилизиране на шаблона. След това изобразете променливите, които ще показват информацията на страницата.

безплатни социални мрежи за търсене на обратен имейл

След това създайте a 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. Тествайте динамично маршрутизиране

Сега можете да тествате дали динамичното маршрутизиране работи на шаблона. Когато щракнете върху присъединете се към качулка бутон, Той навигира до join_hood шаблон. The join_hood шаблонът показва информация за профила за избрания от вас квартал.

Ще видите също идентификатора на квартала, показан на URL адреса на браузъра http://127.0.0.1:8000/join_hood/2/

Ще се появи, както е показано по-долу:

  Страницата join_hood показва подробности за квартала в браузъра

Честито! Създадохте динамичен URL адрес.

Защо да използвате Django URL адреси?

Динамичните URL адреси са важна функция в уеб приложенията. Django улеснява проектирането на URL адреси според вашите нужди. Той премахва ограниченията, които може да свържете с други рамки.

Модулът URLconf е пълен с ресурси, поддържащи създаването на Django URL. Освен това улеснява обслужването на статични файлове в шаблони и подобрява обработката на грешки.

Django има други функции, предназначени да оптимизират бекенд приложенията. Той автоматизира удостоверяването на потребителя, администрирането на съдържанието и картите на сайта, наред с други функции.