Sizin gibi okuyucular MUO'yu desteklemeye yardımcı oluyor. Sitemizdeki bağlantıları kullanarak bir satın alma işlemi gerçekleştirdiğinizde, bir ortaklık komisyonu kazanabiliriz.
Dinamik yönlendirme olmadan, web sayfalarında gezinmek zor olacaktır. Tarayıcıda ziyaret ettiğiniz her sayfanın tam yolunu yazmanız gerekir. Ne korkunç bir kullanıcı deneyimi.
Dinamik Tekdüzen Kaynak Bulucuları (URL'ler), bir düğmeyi tıklatarak bir uygulamadaki farklı sayfalarda gezinmenizi 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'taki tüm kod Python söz dizimindedir 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. Django Projesi Oluşturma
Birinci, bir Django projesi oluştur ve uygulama (uygulama).
Uygulamanızı adlandırın Boma izle. Uygulama, çeşitli mahallelerden konum, açıklama ve sakin numaralarını toplayacaktır. adlı bir model oluşturun.
Komşu. Bir veritabanına mahalleler hakkında bilgi eklemek için modeli kullanın. Nasıl yapılacağını öğrenin Django'da model oluşturma ve aşina değilseniz veritabanı.Ardından, mahalleler için bir görüntüleme 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örevleri ve görevleri yerine getirir.
Bir görünümü yürütmek için onu bir URL aracılığıyla çağırmalısınız. URL, web'deki bir kaynağa giden benzersiz bir yoldur. Kaynak bir HTML sayfası, resim veya bir API bitiş noktası olabilir.
Geçirilen parametrelere göre mahalle verilerini alan bir URL oluşturun. Bunu yapmak için, birincil anahtar (pk) veya Kimlik (id) bilgileri geri almak için. Bunu yapmak için bir şablon kullanacaksınız.
adlı bir dosyada tanımlayarak görünümler oluşturabilirsiniz. görünümler.py uygulamanın klasöründe. içe aktararak başlayın işlemek URL'de verileri görüntülemek için Django'dan işlev. Ayrıca içe aktar Komşu modeli modeller.py.
itibaren django.kısayollar içe aktarmak işlemek
itibaren .modeller içe aktarmak Komşu
Ardından, adında bir görüntüleme işlevi oluşturun. Ev ev şablonundaki tüm mahalleleri görüntüler. bu NeighborHood.objects.all() fonksiyon veritabanından tüm mahalleler için veri alır.
kesinEv(rica etmek):
mahalleler = NeighbourHood.objects.all()
dönüş oluşturma (istek, "ev.html", {'mahalleler':mahalleler})
Ayrıca, için bir görüntüleme işlevi oluşturun. katılmak_hood bu bir mahallenin bilgilerini gösterecek. bu NeighbourHood.objects.get (id=id) işlev, kimliğe göre veri ister. Bilgi daha sonra bir şablon üzerinde işlenir.
kesinkatılmak_hood(istek, kimlik):
mahalle = NeighbourHood.objects.get (id=id)
dönüş oluşturma (istek, 'join_hood.html', {'komşu':komşu})
Daha sonra bir mahalleye gittiğinizde onun profil bilgilerini görebileceksiniz.
3. Dinamik bir URL oluşturun
Artık oluşturduğunuz görüntüleme işlevi için dinamik bir URL oluşturabilirsiniz.
itibaren django.urls içe aktarmak yol
itibaren. içe aktarmak Görüntüleme
itibaren django.conf içe aktarmak ayarlar
itibaren django.conf.urls.statik içe aktarmakstatik
itibarendjango.katkı.statik dosyalar.url'leriçe aktarmakstaticfiles_urlpatternsurl kalıpları = [
yol ('Ev', görünümler.ev, ad='Ev'),
yol ('birleştirme_hood/<dizi: kimlik>/', görünümler.join_hood, ad='katılmak_hood'),
]
eğerayarlar.DEBUG:
url kalıpları += statik(ayarlar. MEDIA_URL, Document_root = ayarlar. MEDYA_KÖK)
İçe aktarmak yol görünüm için yollar oluşturmak üzere Django URL'lerinden. Ardından, görünüm işlevlerini şuradan içe aktarın: görünümler.py.
bu katılmak_hood URL, köşeli parantez içinde bir yer tutucuya sahiptir:. Bu, URL'nin o bölümünü yakalar ve görünüme gönderir.
Köşeli parantezler genellikle bir dönüştürücü özelliği içerir. Spesifikasyon, bir dize (str) veya tamsayı (int) olabilir. Django da sunuyor sülük, yol, veya evrensel olarak benzersiz tanımlayıcılar (uuid). Belirtim, URL'de görünüme geçirilen karakter sayısını veya değişken türünü sınırlar.
URL'lere bir ad vermek, bunların şablonlarda tanımlanmasına yardımcı olur.
bu statik Ve statik dosyalar içe aktarmalar, URL yollarındaki statik dosyaları görüntüler. Resmi olarak URL parametrelerinin nasıl yapılandırılacağı hakkında daha fazla bilgi edinin. Django belgeler.
4. Bir Şablona URL Ekleme
Görünüm işlevini URL'ye ekledikten sonra, verileri görüntülemek için bir HTML şablonu oluşturun. Şablonu siz adlandırın join_hood.html.
{% uzanır "base.html" %}
{% yük statik %}
{% blok içeriği %}
<div sınıfı="kart mb-3" stil="maksimum genişlik: sığdırma içeriği;">
<div sınıfı="sıra g-0">
<div sınıfı="col-md-4">
<div sınıfı="col-md-8">
<div sınıfı="kart gövdesi">
<h5 sınıfı="kart başlığı"> Hoş geldin!</h5>
<p sınıfı="kart metni pt-4"> Ad: {{mahalle.adı}}</P>
<p sınıfı="kart metni pt-4"> Konum: {{neighbourhood.location}}</P>
<p sınıfı="kart metni pt-4"> Açıklama: {{neighbourhood.description}}</P>
<p sınıfı="kart metni pt-4"> Sağlık Tel:{{neighbourhood.health_tell}}</P>
<p sınıfı="kart metni pt-4"> Polis Numarası: {{neighbourhood.police_number}}</P>
<p sınıfı="kart metni pt-4"> Sakinleri: {{mahalle. Saymak}}</P>
</div>
</div>
</div>
</div>
</div>
{% son blok %}
Oluştur katılmak_hood mahalle verilerini görüntülemek için uygulama klasöründeki şablon. İlk olarak, uzatın base.html şablona stil vermek için kullanacağınız stil sayfaları (bootstrap) içeren şablon. Ardından, sayfada bilgileri gösterecek değişkenleri oluşturun.
Ardından, bir ev.html tüm mahalleleri görüntüleyeceğiniz şablon.
{% uzanır 'base.html' %}
{% yük statik %}
{% blok içeriği %}
<div sınıfı="konteyner" stil="siyah renk;">
<img kaynak="{{mahalle.hood_logo.url}}" sınıf="kart-img-üst" alt="{{kullanıcı.mahalle.adı}}"><div sınıfı="sıra">
{% mahallelerdeki mahalleler için %}
<div sınıfı="col-md-4">
<div sınıfı="kart mb-4" stil="minimum yükseklik: 340px">
<img kaynak="{{mahalle.hood_logo.url}}" sınıf="kart-img-üst" alt="{{user.hood.name}}"><div sınıfı="kart gövdesi">
<h5 sınıfı="kart başlığı">
{{mahalle.adı}}
({{mahalle.konum}})
<yayılma sınıfı="ml-4">{{komşu. Count}} üye{{neighborhood.members.count|pluralize}}</span>
</h5><p sınıfı="kart metni">{{mahalle.tanım}}</P>
<p sınıfı="kart metni">{{mahalle.üyesi. Saymak}}</P>
<bir href="{% url 'katılmak_hood' mahalle.id %}" sınıf="btn btn-birincil btn-sm">Hood'a Katılın</A>
</div>
</div>
</div>
</div>
</div>
{% son blok %}
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ı etiketinin URL'si var isim Ve mahalle kimliği.
Düğme tıklandığında, bu kimliğin mahallesine gider. Ana sayfa şablonu URL'de görünür http://127.0.0.1:8000/home/. Aşağıdaki resim bu sayfayı göstermektedir:
5. Dinamik Yönlendirmeyi Test Et
Artık dinamik yönlendirmenin şablon üzerinde çalışıp çalışmadığını test edebilirsiniz. tıkladığınızda kaputa katılmak düğmesi, şuraya gider: katılmak_hood şablon. bu katılmak_hood şablon, seçtiğiniz mahalleyle ilgili profil bilgilerini görüntüler.
Ayrıca tarayıcı URL'sinde görüntülenen mahallenin kimliğini de göreceksiniz. http://127.0.0.1:8000/join_hood/2/
Aşağıda gösterildiği gibi görünecektir:
Tebrikler! Dinamik bir URL oluşturdunuz.
Django URL'lerini Neden Kullanmalı?
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ı 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 geliş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.