Django'da sümüklü böcek oluşturmak için uğraşmanıza gerek yok. Zamandan tasarruf etmek ve iş akışınızı kolaylaştırmak için otomatik bilgi oluşturmayı uygulayın.

Bir web geliştiricisi olarak, web uygulamanızın kullanıcı deneyimini optimize etmek çok önemlidir. Kullanıcı deneyimini ve arama motoru görünürlüğünü iyileştirmek için, Django'da bilgi içeren kullanıcı dostu URL'ler kullanın. Sümüklü böcek içeren URL'ler oluşturmak, bir işlev yazmak kadar kolaydır ve kullanıcıların ve arama motorlarının anlaması kolay, özlü ve açıklayıcı URL'ler oluşturmanıza olanak tanır. Bu, arama motoru sıralamalarını yükseltirken kullanılabilirliği ve erişilebilirliği artırır.

Bu makalede kullanılan kod örnekleri bu makalede bulunabilir. GitHub deposu.

Django Projesi Oluşturma

Django, sümüklü böcek oluşturmak ve bunları web sitenizde kullanmak için çeşitli yöntemler sunar. Sümüklü böcekleri uygulamanın farklı yollarını göstermek için bu öğretici, basit bir blog web uygulaması oluşturma konusunda size yol gösterecektir.

instagram viewer

Bir Django projesi kurmadan önce, sanal bir ortam oluştur ve etkinleştir gerekli bağımlılıkları yüklemek için. Sanal ortamınızı aktif hale getirdikten sonra projenizi kurmak için şu adımları takip ediniz:

  • Komut satırınızda pip komutunu kullanarak Django'yu kurun:
pip kurulumu django
  • kullanarak bir proje oluşturun. django-yönetici Yarar. Bu öğretici kullanacak proje_çekirdeği proje adı olarak.
django-admin startproject proje_çekirdeği.
  • adlı bir uygulama oluşturun. tarifler.
python manage.py startapp tarifleri
  • Uygulamanızı projenizdeki yüklü uygulamalara ekleyin ayar.py dosya.
INSTALED_APPS = [
'...'
"tarifler",
]
  • Komut satırı aracınıza aşağıdaki komutu yazarak uygulamanızı çalıştırın:
python manager.py çalıştırma sunucusu
  • Şu yöne rotayı ayarla http://127.0.0.1:8000/ tarayıcınızda. Bu sayfayı görmelisiniz:
  • Projenizin URL modelini yapılandırın urls.py dosya
itibaren django.urls içe aktarmak yol, dahil

url kalıpları = [
'...',
yol('', katmak("tarifler.url'ler"))
]

Django'da Slug Oluşturma

Django'da bir bilgi parçası oluşturmak için modellerinize bir bilgi alanı eklemeniz gerekir. Django'da bir bilgi parçası oluşturmak için şu adımları izleyin.

Bir Model Oluşturun

senin içinde modeller.py dosya, yeni bir model oluşturun ve bir bilgi alanı ekleyin. İşte bir örnek:

sınıfYemek tarifi(modeller. modeli):
isim = modeller. CharField (maks_uzunluk=225, boş=YANLIŞ, boş=YANLIŞ)
malzemeler = modeller. Metin Alanı (boş=YANLIŞ, boş=YANLIŞ)
talimatlar = modeller. Metin Alanı (boş=YANLIŞ, boş=YANLIŞ)
tarih_yaratılmış = modeller. DateTimeField (auto_now=Doğru)
sülük = modeller. SlugField (boş = Doğru, boş=Doğru, benzersiz=Doğru)

Yukarıdaki örnekte, model Yemek tarifi adlı bir alan içerir sülük. bu sülük alan özniteliklere sahiptir, hükümsüz Ve boşluk ayarlanır Doğru.

Modelinize Geçişleri Uygulayın

Bir model oluşturduktan sonra, veritabanınızda tabloyu oluşturmak için komut satırı aracınızda aşağıdaki komutu çalıştırmalısınız:

python manager.py makemigrations && python manage.py göçü

Yukarıdaki komut önce bir geçiş dosyası oluşturacak ve ardından geçiş dosyası içindeki talimatları yürüterek veritabanını güncelleyecektir.

Veritabanınıza Veri Ekleyin

Aşağıdakini yazarak modelinizi kaydedin. admin.py dosya:

itibaren django.contrib içe aktarmak yönetici
itibaren .modeller içe aktarmak Yemek tarifi

admin.site.register (Tarif)

Ardından, komut satırı aracınızı açın ve bir süper kullanıcı bu komutu çalıştırarak yönetici paneliniz için:

python manage.py süper kullanıcı oluşturur

Yukarıdaki komut sizi bu resimde gösterilen adımlardan geçirecektir:

oluşturduktan sonra süper kullanıcı, yerel sunucunuzu aşağıdaki komutla başlatın:

python manager.py çalıştırma sunucusu

Sunucunuz başladıktan sonra, şuraya gitmelisiniz: http://127.0.0.1:8000/admin/oluşturmak için kullandığınız ayrıntılarla oturum açın. süper kullanıcıve veritabanınıza manuel olarak bazı tarifler ekleyin. Slug alanına dikkat etmelisiniz.

Uygulamanız için Görünümler Oluşturun

aç senin görünümler.py dosyasını açın ve uygulamanız için iki görünüm oluşturun. İlk görünüm tariflerinize genel bir bakış sunarken, ikincisi her tarif hakkında daha fazla ayrıntı verecektir. Bu görünümleri projenizde kullanabilirsiniz:

itibaren django.kısayollar içe aktarmak oluştur, get_object_or_404
itibaren .modeller içe aktarmak Yemek tarifi

# Tarifler için liste görünümü
kesintarif_listesi(rica etmek):
tarifler = Tarif.objects.all()
geri dönmek render (istek, "tarifler/tarif_listesi.html", {"tarifler":tarifler})

# Her tarif için ayrıntılı görünüm
kesintarif_detay(istek, tarif_slug):
tarif = get_object_or_404(Tarif, slug=recipe_slug)
geri dönmek render (istek, "tarifler/tarif_detay.html", {'yemek tarifi': yemek tarifi})

Yukarıdaki kod parçacığında, tarif_listesi view, tüm tariflerin listesini şablona döndürür. Öte yandan, tarif_detay view, şablona tek bir tarif döndürür. Bu görünüm, adı verilen ek bir parametreyi alır. tarif_slug belirli bir tarif için sümüklüböcek almak için kullanılır.

Görünümleriniz için URL Kalıplarını Yapılandırın

Uygulama dizininizde (veya yemek tarifi klasörü), adlı bir dosya oluşturun. urls.py uygulamanız için URL yolları eklemek için. İşte bir örnek:

itibaren django.urls içe aktarmak yol
itibaren .Görüntüleme içe aktarmak tarif_listesi, tarif_detayları

url kalıpları = [
yol('', tarif_listesi, ad="ev tarifi"),
yol('yemek tarifi//', tarif_detay, isim="tarif_detay"),
]

Yukarıdaki kod parçacığında, ikinci yol bilgi parçasını sayfanın URL'sine tanıtır.

Uygulamanız için Şablonlar Oluşturun

Tarifleri tarayıcıda görüntülemek için görünümleriniz için şablonlar oluşturun. Bir şablon aşağıdakiler için olmalıdır: tarif_listesi diğeri için olması gerekirken görüntüle tarif_detay görüş. Bilgi bilgisini şablonunuzda kullanmak için şu formatı izleyin, {% url 'view_name' yemek tarifi.slug %}. Kodunuzda kullanabileceğiniz iki örnek:

 tarifler/recipe_list.html 
{% 'base.html'yi genişletiyor %}

{% blok içeriği %}
<h1sınıf="my-5 metin merkezi">tariflerh1>
<merkez>
<Ulsınıf="liste grubu w-75">
{% tariflerdeki tarif için %}
<lisınıf="liste-grup-öğesi benim-3">
<h2sınıf="mb-3">
<Ahref="{% url 'tarif_detay' tarif.slug %}">
{{ yemek tarifi.adı }}
A>
h2>
<Psınıf="w-50">
Malzemeler: {{ yemek tarifi. malzemeler }}
P>
<Psınıf="metin sessize alındı">
Oluşturuldu: {{ tarif.tarih_yaratıldı }}
P>
li>
{% boş %}
<lisınıf="liste-grup-öğesi">Tarif bulunamadı.li>
{% endfor %}
Ul>
merkez>
{% son blok %}

Yukarıdaki HTML şablonu, veritabanınızdaki tüm tarifleri listeleyecek ve Tarif bulunamadı tarif yoksa. Stil vermek için Bootstrap sınıflarını kullanır. nasıl yapılacağını öğrenebilirsin Django ile Bootstrap kullanın. Yukarıdaki şablon tarayıcıda şöyle görünmelidir:

 tarifler/recipe_detail.html 
{% 'base.html'yi genişletiyor %}

{% blok içeriği %}
<merkez>
<divsınıf="w-75">
<h1sınıf="mt-5 mb-4">{{ yemek tarifi.adı }}h1>
<h3>İçindekilerh3>
<P>{{ yemek tarifi. malzemeler }}P>
<h3>Talimatlarh3>
<P>{{ tarif.talimatlar }}P>
<Psınıf="metin sessize alındı">Oluşturuldu: {{ tarif.tarih_yaratıldı }}P>
div>
merkez>
{% son blok %}

Yukarıdaki HTML şablonu, belirli bir tarifle ilgili ayrıntıları döndürür. Tarayıcıda yukarıdaki sayfa şöyle görünmelidir:

URL'nin artık her tarif için veritabanınıza eklediğiniz bilgileri içerdiğini fark edeceksiniz. Şablon sisteminin nasıl çalıştığını anlamadıysanız, önce öğrenmelisiniz. Django'da şablon kalıtımı Ve Django'nun MVT mimarisi.

Django'da Otomatik Olarak Bir Slug Oluşturun

Sümüklü böceklerle, gerçekten istediğiniz şey, onları modelinizdeki bir alana göre otomatik olarak oluşturmaktır. Bunu yapmak için, kaydetmek() yöntemini modelinize ekleyin ve nesneler veritabanına kaydedilmeden önce kendi kurallarınızı belirleyin. İşte model sınıfınıza ekleyebileceğiniz basit bir örnek:

# yavaşlamayı içe aktar
itibaren django.template.defaultfilters içe aktarmak uyuşturmak

kesinkaydetmek(self, *args, **kwargs):
eğerOlumsuz self.slug:
self.slug = slugify (self.name)
super().save(*args, **kwargs)

Yukarıdaki işlev, önce model nesnesi için bir bilgi olup olmadığını kontrol eder. Sümüklü böcek yoksa, kullanır uyuşturmak modeldeki ad alanından bir tane oluşturmak için işlev. geçersiz kıldıktan sonra kaydetmek() yöntemi, yönetici panelinizi açın ve bazı tarifler ekleyin. Bu sefer bilgi alanını doldurmanıza gerek yok çünkü tarifinizi kaydettiğinizde otomatik olarak doldurulacaktır.

Yeni eklediğiniz tarifin ayrıntılar sayfasına giderseniz, URL'nin tarif adını bilgi olarak kullandığını göreceksiniz.

Bazen, aynı ada sahip birden çok tarifiniz olur ve bu da bilginizde hatalara neden olur. Bilginize, oluşturulma tarihi gibi benzersiz bir öğe ekleyerek bunu düzeltebilirsiniz. İşte basit bir örnek:

self.slug = yavaşla (self.name + "-" + str (self.date_created))

URL Deneyimini Geliştirmek için Sümüklü Böcekleri Kullanın

eski güzelin aksine pk, sümüklü böcekler, birincil anahtar gibi belirli URL tanımlayıcılarına bağlı olmadıkları için esneklik ve taşınabilirlik dahil olmak üzere birçok avantaj sağlar. Bu nedenle, veritabanı yapınızı değiştirseniz veya verilerinizi taşısanız da tutarlı URL'ler sağlayabilirsiniz. Salyangozlar aynı zamanda SEO dostluğunu da geliştirir.