Dinamik yönlendirme olmadan, web sayfalarında gezinmek zor olurdu. Tarayıcıda ziyaret ettiğiniz her sayfanın tam yolunu yazmanız gerekir. Ne korkunç bir kullanıcı deneyimi.

Django ile Dinamik Yönlendirme Nasıl Kullanılır?

Dinamik Tekdüzen Kaynak Konum Belirleyicileri (URL’ler), bir düğmeye tıklayarak bir uygulamada farklı sayfalara gitmenizi sağlar. Django, dinamik URL’ler tasarlamayı kolaylaştırır. URL ifadelerini görünümlere bağlayan bir URL Yapılandırma modülüne (URLconf) sahiptir.

URLconf’daki tüm kodlar Python sözdizimindedir ve dinamik URL’ler oluşturmayı kolaylaştırır. Bir Django projesi oluşturarak dinamik URL’ler hakkında daha fazla bilgi edinelim.

1. Bir Django Projesi Oluşturun

İlk önce bir Django projesi ve uygulaması (uygulama) oluşturun.

Uygulamanıza Boma-watch adını verin . Uygulama, çeşitli mahallelerden konum, açıklama ve ikamet numaralarını toplayacaktır. NeighborHood adlı bir model oluşturun . Bir veritabanına mahalleler hakkında bilgi eklemek için modeli kullanın. Eğer aşina değilseniz, Django’da ve veritabanında nasıl model oluşturacağınızı öğrenin.

Ardından, mahalleler için bir görünüm işlevi oluşturun.

2. Bir Görünüm İşlevi Oluşturun

Django’da görünümler, HTTP isteklerini alan ve yanıtları döndüren Python işlevleridir. Django tarafından desteklenen bir web sayfasında, görünümler çeşitli görevler ve görevler gerçekleştirir.

Bir görünümü yürütmek için, onu bir URL aracılığıyla çağırmanız gerekir. URL, web’deki bir kaynağa giden benzersiz bir yoldur. Kaynak bir HTML sayfası, resim veya bir API uç noktası olabilir.

Geçirilen parametrelere göre komşuluk verilerini alan bir URL oluşturun. Bunu yapmak için, bilgileri almak için birincil anahtarı (pk) veya Tanımlamayı (id) kullanabilirsiniz. Bunu yapmak için bir şablon kullanacaksınız.

Görünümleri , uygulamanın klasöründeki views.py adlı bir dosyada tanımlayarak oluşturabilirsiniz . URL’deki verileri görüntülemek için oluşturma işlevini Django’dan içe aktararak başlayın . Ayrıca NeighborHood modelini models.py dosyasından içe aktarın .

from django.shortcuts import render

from .models import NeighbourHood

Ardından, ev şablonundaki tüm mahalleleri görüntüleyen ev adında bir görünüm işlevi oluşturun. NeighborHood.objects.all() işlevi , veritabanından tüm mahalleler için veri alır.

def home(request):

     neighborhoods = NeighbourHood.objects.all()

     return render (request, “home.html”, {‘neighborhoods’:neighborhoods})

Ayrıca, bir mahallenin bilgilerini görüntüleyecek olan join_hood için bir görünüm işlevi oluşturun . NeighbourHood.objects.get(id=id) işlevi , kimliğe göre veri ister. Bilgiler daha sonra bir şablon üzerinde işlenir.

def join_hood(request, id):

     neighborhood = NeighbourHood.objects.get(id=id)

     return render (request, ‘join_hood.html’, {‘neighborhood’:neighborhood})

Daha sonra bir mahalleye gittiğinizde onun profil bilgilerini görebileceksiniz.

3. Dinamik bir URL oluşturun

Artık oluşturduğunuz görünüm işlevi için dinamik bir URL oluşturabilirsiniz.

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)

Görünüm için yollar oluşturmak için yolu Django URL’lerinden içe aktarın . Ardından görünüm işlevlerini views.py’den içe aktarın .

Join_hood URL’sinin köşeli parantez içinde bir yer tutucusu vardır: < str:id> . Bu, URL’nin o kısmını yakalar ve görünüme gönderir.

Köşeli parantezler genellikle bir dönüştürücü özelliği içerir. Belirtim bir dize (str) veya tamsayı (int) olabilir. Django ayrıca slug, path veya evrensel olarak benzersiz tanımlayıcılar (uuid) sunar. Belirtim, URL’de görünüme iletilen değişken türünü veya karakter sayısını sınırlar.

Django ile Dinamik Yönlendirme Nasıl Kullanılır?

URL’lere bir ad vermek, onları şablonlarda tanımlamaya yardımcı olacaktır.

Statik ve statik dosyalar içe aktarmaları , URL yollarında statik dosyaları görüntüler. Resmi Django belgelerinde URL parametrelerinin nasıl yapılandırılacağı hakkında daha fazla bilgi edinin .

4. Bir Şablona URL Ekleme

URL’ye görüntüleme işlevini ekledikten sonra, verileri görüntülemek için bir HTML şablonu oluşturun. Şablonu join_hood.html olarak adlandırın .

{% 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 %}

Komşuluk verilerini görüntülemek için uygulama klasöründe join_hood şablonunu oluşturun . İlk olarak, base.html şablonunu, şablona stil vermek için kullanacağınız stil sayfaları (bootstrap) ile genişletin. Ardından, sayfada bilgileri görüntüleyecek değişkenleri oluşturun.

Ardından, tüm mahalleleri görüntüleyeceğiniz bir home.html şablonu oluşturun.

{% 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 %}

Ana sayfada, mahalleler hakkında görüntülemek istediğiniz tüm bilgileri oluşturun. Ana sayfaya bir düğme ve bir bağlantı etiketi ekleyeceksiniz. Bağlantı etiketi, URL adına ve mahalle kimliğine sahiptir .

Tıklandığında, düğme o kimliğin mahallesine gider. Ana sayfa şablonu, http :// 127 URL’sinde görünür . 0 . 0 . 1 : 8000 / ev / . Aşağıdaki resim bu sayfayı göstermektedir:

Ana sayfa tüm mahalleleri gösterir

5. Dinamik Yönlendirmeyi Test Edin

Django ile Dinamik Yönlendirme Nasıl Kullanılır?

Artık dinamik yönlendirmenin şablon üzerinde çalışıp çalışmadığını test edebilirsiniz. Join hood düğmesine tıkladığınızda , join_hood şablonuna gider. Join_hood şablonu , seçtiğiniz mahalleyle ilgili profil bilgilerini görüntüler.

Ayrıca http :// 127 tarayıcı URL’sinde görüntülenen mahallenin kimliğini de göreceksiniz . 0 . 0 . 1 : 8000 / birleştirme _ başlık / 2 /

Aşağıda gösterildiği gibi görünecektir:

join_hood sayfası, tarayıcıda mahalle ayrıntılarını görüntüler

Tebrikler! Dinamik bir URL oluşturdunuz.

Neden Django URL’lerini Kullanmalısınız?

Dinamik URL’ler, web uygulamalarında önemli bir özelliktir. Django, URL’leri ihtiyaçlarınıza göre tasarlamayı kolaylaştırır. Diğer çerçevelerle ilişkilendirebileceğiniz sınırlamaları ortadan kaldırır.

URLconf modülü, Django URL oluşturmayı destekleyen kaynaklarla doludur. Ayrıca şablonlarda statik dosyaların sunulmasını kolaylaştırır ve hata işlemeyi iyileştirir.

Django, arka uç uygulamalarını optimize etmek için tasarlanmış başka özelliklere sahiptir. Diğer özelliklerin yanı sıra kullanıcı kimlik doğrulamasını, içerik yönetimini ve site haritalarını otomatikleştirir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir