Читатели като вас помагат в подкрепа на MUO. Когато правите покупка чрез връзки на нашия сайт, ние може да спечелим комисионна за партньор.
Без динамично маршрутизиране навигирането в уеб страниците би било трудно. Ще трябва да въведете пълния път на всяка страница, която посещавате в браузъра. Какво ужасно потребителско изживяване.
Динамичните унифицирани локатори на ресурси (URL) ви позволяват да навигирате до различни страници на приложение с едно натискане на бутон. Django улеснява проектирането на динамични URL адреси. Той има модул за конфигуриране на URL (URLconf), който свързва URL изрази с изгледи.
Целият код в URLconf е в синтаксиса на Python, което улеснява създаването на динамични URL адреси. Нека научим повече за динамичните URL адреси, като изградим Django проект.
1. Създайте Django проект
първо, създайте Django проект и приложение (приложение).
Дайте име на приложението си Boma-часовник. Приложението ще събира местоположение, описание и номера на жители от различни квартали. Създайте модел с име
Съседство. Използвайте модела, за да добавите информация за кварталите в база данни. Научете как да създавайте модели в Django и базата данни, ако не сте запознати.След това създайте функция за изглед за кварталите.
2. Създайте функция за изглед
В Django изгледите са функции на Python, които приемат HTTP заявки и връщат отговори. На уеб страница, поддържана от Django, изгледите изпълняват разнообразни задачи и мисии.
За да изпълните изглед, трябва да го извикате чрез URL адрес. URL адресът е уникален път към ресурс в мрежата. Ресурсът може да бъде HTML страница, изображение или крайна точка на API.
Създайте URL, който извлича данни за квартала въз основа на предадените параметри. За да направите това, можете да използвате първичен ключ (pk) или Идентификация (id) за извличане на информацията. Ще използвате един шаблон, за да направите това.
Можете да създавате изгледи, като ги дефинирате във файл, наречен views.py в папката на приложението. Започнете с импортиране на изобразявам функция от Django за показване на данни в URL адреса. Също така импортирайте Съседство модел от models.py.
от django.shortcuts импортиране изобразявам
от .модели импортиране квартал
След това създайте функция за изглед с име У дома който показва всички квартали в началния шаблон. The NeighborHood.objects.all() функцията получава данни за всички квартали от базата данни.
дефУ дома(заявка):
квартали = NeighbourHood.objects.all()
връщане на изобразяване (заявка, "home.html", {'квартали':квартали})
Също така създайте функция за изглед за join_hood който ще показва информация за квартала. The NeighbourHood.objects.get (id=id) функция изисква данни според ID. След това информацията се изобразява върху шаблон.
дефjoin_hood(заявка, id):
съседство = NeighbourHood.objects.get (id=id)
връщане на изобразяване (заявка, 'join_hood.html', {'квартал':квартал})
По-късно, когато навигирате до квартал, ще можете да видите информацията за неговия профил.
3. Създайте динамичен URL адрес
Вече можете да създадете динамичен URL за функцията за преглед, която сте създали.
от django.urls импортиране път
от. импортиране изгледи
от django.conf импортиране настройки
от django.conf.urls.static импортиранестатичен
отДжанго.contrib.staticfiles.urlsимпортиранеstaticfiles_urlpatternsurlpatterns = [
път ('У дома', views.home, име='У дома'),
път ('join_hood/<str: id>/', views.join_hood, име='join_hood'),
]
аконастройки.DEBUG:
urlpatterns += статичен(настройки. MEDIA_URL, document_root = настройки. 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.
{% се удължава "база.html" %}
{% натоварване статичен %}
{% блокиране на съдържанието %}
<div клас="карта mb-3" стил="max-width: подходящо съдържание;">
<div клас="ред g-0">
<div клас="col-md-4">
<div клас="col-md-8">
<div клас="тяло на картата">
<h5 клас="карта-заглавие"> Добре дошли!</h5>
<p клас="карта-текст pt-4"> Име: {{neighbourhood.name}}</стр>
<p клас="карта-текст pt-4"> Местоположение: {{neighbourhood.location}}</стр>
<p клас="карта-текст pt-4"> Описание: {{neighbourhood.description}}</стр>
<p клас="карта-текст pt-4"> Здравен телефон:{{neighbourhood.health_tell}}</стр>
<p клас="карта-текст pt-4"> Номер на полицията: {{neighbourhood.police_number}}</стр>
<p клас="карта-текст pt-4"> Жители: {{квартал. Броя}}</стр>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
Създайте join_hood шаблон в папката на приложението за показване на данните за квартала. Първо, удължете база.html шаблон със стилови таблици (bootstrap), които ще използвате за стилизиране на шаблона. След това изобразете променливите, които ще показват информацията на страницата.
След това създайте a home.html шаблон, където ще покажете всички квартали.
{% се удължава 'база.html' %}
{% натоварване статичен %}
{% блокиране на съдържанието %}
<div клас="контейнер" стил="цвят черен;">
<img src="{{neighborhood.hood_logo.url}}" клас="card-img-top" alt="{{user.neighborhood.name}}"><div клас="ред">
{% за квартал в квартали %}
<div клас="col-md-4">
<div клас="карта mb-4" стил="мин. височина: 340px">
<img src="{{neighborhood.hood_logo.url}}" клас="card-img-top" alt="{{user.hood.name}}"><div клас="тяло на картата">
<h5 клас="карта-заглавие">
{{neighborhood.name}}
({{neighborhood.location}})
<span class="ml-4">{{квартал. Брой}} член{{neighborhood.members.count|pluralize}}</span>
</h5><p клас="карта-текст">{{neighborhood.description}}</стр>
<p клас="карта-текст">{{neighborhood.member. Броя}}</стр>
<a href="{% url 'join_hood' neighbourhood.id %}" клас="btn btn-основен btn-sm">Присъединете се към Худ</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
На началната страница изобразете цялата информация, която искате да покажете за кварталите. Ще добавите бутон и маркер за котва на началната страница. Етикетът за котва има URL адреса име и ID на квартала.
Когато се щракне, бутонът навигира до околността на този идентификатор. Началният шаблон се появява на URL адреса http://127.0.0.1:8000/home/. Картината по-долу демонстрира тази страница:
5. Тествайте динамично маршрутизиране
Сега можете да тествате дали динамичното маршрутизиране работи на шаблона. Когато щракнете върху присъединете се към качулка бутон, Той навигира до join_hood шаблон. The join_hood шаблонът показва информация за профила за избрания от вас квартал.
Ще видите също идентификационния номер на квартала, показан в URL адреса на браузъра http://127.0.0.1:8000/join_hood/2/
Ще се появи, както е показано по-долу:
Честито! Създадохте динамичен URL адрес.
Защо да използвате Django URL адреси?
Динамичните URL адреси са важна функция в уеб приложенията. Django улеснява проектирането на URL адреси според вашите нужди. Той премахва ограниченията, които може да свържете с други рамки.
Модулът URLconf е пълен с ресурси, поддържащи създаването на Django URL. Освен това улеснява обслужването на статични файлове в шаблони и подобрява обработката на грешки.
Django има други функции, предназначени да оптимизират бекенд приложенията. Той автоматизира удостоверяването на потребителя, администрирането на съдържанието и картите на сайта, наред с други функции.