Δεν χρειάζεται να ταλαιπωρηθείτε για να δημιουργήσετε γυμνοσάλιαγκες στο Django. Εφαρμόστε την αυτόματη δημιουργία γυμνοσάλιαγκων για να εξοικονομήσετε χρόνο και να βελτιώσετε τη ροή εργασίας σας.

Ως προγραμματιστής ιστού, η βελτιστοποίηση της εμπειρίας χρήστη της εφαρμογής ιστού σας είναι ζωτικής σημασίας. Για να βελτιώσετε την εμπειρία χρήστη και την ορατότητα της μηχανής αναζήτησης, χρησιμοποιήστε φιλικές προς τον χρήστη διευθύνσεις URL με γυμνοσάλιαγκες στο Django. Η δημιουργία διευθύνσεων URL με γυμνοσάλιαγκες είναι τόσο εύκολη όσο η σύνταξη μιας συνάρτησης, επιτρέποντάς σας να δημιουργήσετε συνοπτικές και περιγραφικές διευθύνσεις URL που είναι εύκολο να κατανοήσουν οι χρήστες και οι μηχανές αναζήτησης. Αυτό ενισχύει τη χρηστικότητα και την προσβασιμότητα ενώ ενισχύει την κατάταξη στις μηχανές αναζήτησης.

Τα παραδείγματα κώδικα που χρησιμοποιούνται σε αυτό το άρθρο βρίσκονται σε αυτό Αποθετήριο GitHub.

Δημιουργία ενός έργου Django

Το Django παρέχει διάφορες μεθόδους για τη δημιουργία γυμνοσάλιαγκων και τη χρήση τους στον ιστότοπό σας. Για να δείξουμε διαφορετικούς τρόπους εφαρμογής γυμνοσάλιαγκες, αυτό το σεμινάριο θα σας καθοδηγήσει στη δημιουργία μιας απλής εφαρμογής ιστολογίου ιστολογίου.

instagram viewer

Πριν δημιουργήσετε ένα έργο Django, δημιουργία και ενεργοποίηση ενός εικονικού περιβάλλοντος για να εγκαταστήσετε τις απαραίτητες εξαρτήσεις. Αφού ενεργοποιήσετε το εικονικό σας περιβάλλον, ακολουθήστε τα παρακάτω βήματα για να ρυθμίσετε το έργο σας:

  • Εγκαταστήστε το Django χρησιμοποιώντας την εντολή pip στη γραμμή εντολών σας:
pip install django
  • Δημιουργήστε ένα έργο χρησιμοποιώντας το django-διαχειρ χρησιμότητα. Αυτό το σεμινάριο θα χρησιμοποιήσει project_core ως όνομα έργου.
django-admin startproject project_core .
  • Δημιουργήστε μια εφαρμογή με όνομα συνταγές.
συνταγές python manager.py startapp
  • Προσθέστε την εφαρμογή σας στις εγκατεστημένες εφαρμογές στο έργο σας setting.py αρχείο.
INSTALLED_APPS = [
'...'
"συνταγές",
]
  • Εκτελέστε την εφαρμογή σας πληκτρολογώντας την ακόλουθη εντολή στο εργαλείο γραμμής εντολών:
python manager.py runserver
  • Πλοηγηθείτε στο http://127.0.0.1:8000/ στο πρόγραμμα περιήγησής σας. Θα πρέπει να δείτε αυτή τη σελίδα:
  • Διαμορφώστε το μοτίβο διεύθυνσης URL στο έργο σας urls.py αρχείο
από django.urls εισαγωγή μονοπάτι, περιλαμβάνει

urlpatterns = [
'...',
μονοπάτι('', περιλαμβάνω('recipes.urls'))
]

Δημιουργία γυμνοσάλιαγκου στο Django

Για να δημιουργήσετε ένα γυμνοσάλιαγκο στο Django, πρέπει να συμπεριλάβετε ένα πεδίο γυμνοσάλιαγκας στα μοντέλα σας. Ακολουθήστε αυτά τα βήματα για να δημιουργήσετε ένα γυμνοσάλιαγκο στο Django.

Δημιουργήστε ένα μοντέλο

Στο δικό σου models.py αρχείο, δημιουργήστε ένα νέο μοντέλο και συμπεριλάβετε ένα πεδίο γυμνοσάλιαγκας. Εδώ είναι ένα παράδειγμα:

τάξηΣυνταγή(μοντέλα. Μοντέλο):
όνομα = μοντέλα. CharField (max_length=225, κενό=Ψευδής, null=Ψευδής)
συστατικά = μοντέλα. Πεδίο κειμένου (κενό=Ψευδής, null=Ψευδής)
οδηγίες = μοντέλα. Πεδίο κειμένου (κενό=Ψευδής, null=Ψευδής)
date_created = μοντέλα. Πεδίο ημερομηνίας ώρας (auto_now=Αληθής)
γυμνοσάλιαγκας = μοντέλα. SlugField (null = Αληθής, κενό=Αληθής, μοναδικός=Αληθής)

Στο παραπάνω παράδειγμα, το μοντέλο Συνταγή περιέχει ένα πεδίο με όνομα γυμνοσάλιαγκας. ο γυμνοσάλιαγκας το πεδίο έχει τις ιδιότητες, μηδενικό και κενό οριστεί σε Αληθής.

Εφαρμόστε τις μετεγκαταστάσεις στο μοντέλο σας

Αφού δημιουργήσετε ένα μοντέλο, θα πρέπει να εκτελέσετε την ακόλουθη εντολή στο εργαλείο γραμμής εντολών για να δημιουργήσετε τον πίνακα στη βάση δεδομένων σας:

python manager.py makemigrations && python manager.py migrate

Η παραπάνω εντολή θα δημιουργήσει πρώτα ένα αρχείο μετεγκατάστασης και στη συνέχεια θα ενημερώσει τη βάση δεδομένων εκτελώντας τις οδηγίες μέσα στο αρχείο μετεγκατάστασης.

Προσθέστε δεδομένα στη βάση δεδομένων σας

Καταχωρίστε το μοντέλο σας πληκτρολογώντας τα παρακάτω στο δικό σας admin.py αρχείο:

από django.συνεισφορά εισαγωγή διαχειριστής
από .μοντέλα εισαγωγή Συνταγή

admin.site.register (Συνταγή)

Στη συνέχεια, ανοίξτε το εργαλείο γραμμής εντολών και δημιουργήστε ένα υπερχρήστης για τον πίνακα διαχειριστή σας εκτελώντας αυτήν την εντολή:

python management.py createsuperuser

Η παραπάνω εντολή θα σας οδηγήσει στα βήματα που απεικονίζονται σε αυτήν την εικόνα:

Μετά τη δημιουργία ενός υπερχρήστης, ξεκινήστε τον τοπικό σας διακομιστή με την ακόλουθη εντολή:

python manager.py runserver

Μόλις ξεκινήσει ο διακομιστής σας, θα πρέπει να πλοηγηθείτε σε http://127.0.0.1:8000/admin/, συνδεθείτε με τα στοιχεία που χρησιμοποιήσατε για να δημιουργήσετε α υπερχρήστηςκαι προσθέστε μη αυτόματα μερικές συνταγές στη βάση δεδομένων σας. Θα πρέπει να δώσετε προσοχή στο πεδίο γυμνοσάλιαγκας.

Δημιουργήστε προβολές για την εφαρμογή σας

Ανοιξε το δικό σου views.py αρχείο και δημιουργήστε δύο προβολές για την εφαρμογή σας. Η πρώτη προβολή θα εμφανίσει απλώς μια επισκόπηση των συνταγών σας ενώ η δεύτερη θα δώσει περισσότερες λεπτομέρειες για κάθε συνταγή. Μπορείτε να χρησιμοποιήσετε αυτές τις προβολές στο έργο σας:

από django.συντομεύσεις εισαγωγή render, get_object_or_404
από .μοντέλα εισαγωγή Συνταγή

# Προβολή λίστας για συνταγές
defλίστα_συνταγών(αίτηση):
recipes = Recipe.objects.all()
ΕΠΙΣΤΡΟΦΗ απόδοση (αίτημα, 'recipes/recipe_list.html', {"συνταγές":συνταγές})

# Προβολή λεπτομερειών για κάθε συνταγή
defσυνταγή_λεπτομέρεια(αίτημα, recipe_slug):
συνταγή = get_object_or_404(Συνταγή, slug=recipe_slug)
ΕΠΙΣΤΡΟΦΗ απόδοση (αίτημα, 'recipes/recipe_detail.html', {'συνταγή': συνταγή})

Στο παραπάνω απόσπασμα κώδικα, το λίστα_συνταγών Η προβολή επιστρέφει τη λίστα με όλες τις συνταγές στο πρότυπο. Από την άλλη πλευρά, το συνταγή_λεπτομέρεια Η προβολή επιστρέφει μια μεμονωμένη συνταγή στο πρότυπο. Αυτή η προβολή λαμβάνει μια πρόσθετη παράμετρο που ονομάζεται recipe_slug που χρησιμοποιείται για να πάρει τη γυμνοσάλιαγκα για μια συγκεκριμένη συνταγή.

Διαμόρφωση μοτίβων URL για τις προβολές σας

Στον κατάλογο της εφαρμογής σας (ή συνταγή φάκελο), δημιουργήστε ένα αρχείο που ονομάζεται urls.py για να προσθέσετε διαδρομές URL για την εφαρμογή σας. Εδώ είναι ένα παράδειγμα:

από django.urls εισαγωγή μονοπάτι
από .προβολές εισαγωγή συνταγή_λίστα, συνταγή_λεπτομέρεια

urlpatterns = [
μονοπάτι('', λίστα_συνταγών, όνομα="Σπιτική συνταγή"),
μονοπάτι('συνταγή//', συνταγή_λεπτομέρεια, όνομα="λεπτομέρεια_συνταγής"),
]

Στο παραπάνω απόσπασμα κώδικα, η δεύτερη διαδρομή εισάγει το slug στη διεύθυνση URL της σελίδας.

Δημιουργήστε πρότυπα για την εφαρμογή σας

Για να εμφανίσετε τις συνταγές στο πρόγραμμα περιήγησης, δημιουργήστε πρότυπα για τις προβολές σας. Ένα πρότυπο πρέπει να είναι για το λίστα_συνταγών προβολή ενώ το άλλο θα πρέπει να είναι για το συνταγή_λεπτομέρεια θέα. Για να χρησιμοποιήσετε τη γυμνοσάλιαγκα στο πρότυπό σας, ακολουθήστε αυτήν τη μορφή, {% url 'view_name' recipe.slug %}. Ακολουθούν δύο παραδείγματα που μπορείτε να χρησιμοποιήσετε στον κώδικά σας:

 recipes/recipe_list.html 
{% extends 'base.html' %}

{% αποκλεισμός περιεχομένου %}
<h1τάξη="my-5 text-center">Συνταγέςh1>
<κέντρο>
<ulτάξη="list-group w-75">
{% για συνταγή σε συνταγές %}
<liτάξη="list-group-item my-3">
<h2τάξη="mb-3">
<έναhref="{% url 'recipe_detail' recipe.slug %}">
{{ recipe.name }}
ένα>
h2>
<Πτάξη="w-50">
Συστατικά: {{ συνταγή.συστατικά }}
Π>
<Πτάξη="Σίγαση κειμένου">
Δημιουργήθηκε: {{ recipe.date_created }}
Π>
li>
{% κενό %}
<liτάξη="list-group-item">Δεν βρέθηκαν συνταγές.li>
{% τέλος για %}
ul>
κέντρο>
{% endblock %}

Το παραπάνω πρότυπο HTML θα εμφανίσει όλες τις συνταγές στη βάση δεδομένων και στην οθόνη σας Δεν βρέθηκαν συνταγές αν δεν υπάρχουν συνταγές. Χρησιμοποιεί κλάσεις Bootstrap για styling. Μπορείτε να μάθετε πώς να χρησιμοποιήστε το Bootstrap με το Django. Το παραπάνω πρότυπο θα πρέπει να μοιάζει με αυτό στο πρόγραμμα περιήγησης:

 recipes/recipe_detail.html 
{% extends 'base.html' %}

{% αποκλεισμός περιεχομένου %}
<κέντρο>
<divτάξη="w-75">
<h1τάξη="mt-5 mb-4">{{ recipe.name }}h1>
<h3>Συστατικάh3>
<Π>{{ ΥΛΙΚΑ ΣΥΝΤΑΓΗΣ }}Π>
<h3>Οδηγίεςh3>
<Π>{{ recipe.instructions }}Π>
<Πτάξη="Σίγαση κειμένου">Δημιουργήθηκε: {{ recipe.date_created }}Π>
div>
κέντρο>
{% endblock %}

Το παραπάνω πρότυπο HTML επιστρέφει λεπτομέρειες σχετικά με μια συγκεκριμένη συνταγή. Στο πρόγραμμα περιήγησης, η παραπάνω σελίδα θα πρέπει να μοιάζει με αυτό:

Θα παρατηρήσετε ότι η διεύθυνση URL περιέχει πλέον ό, τι γυμνοσάλιαγκα προσθέσατε στη βάση δεδομένων σας για κάθε συνταγή. Εάν δεν καταλαβαίνετε πώς λειτουργεί το σύστημα προτύπων, θα πρέπει πρώτα να μάθετε κληρονομιά προτύπου στο Django και Η αρχιτεκτονική MVT του Django.

Αυτόματη δημιουργία ενός γυμνοσάλιαγκου στο Django

Με τις γυμνοσάλιαγκες, αυτό που πραγματικά θέλετε είναι να τις δημιουργήσετε αυτόματα με βάση ένα πεδίο στο μοντέλο σας. Για να γίνει αυτό, πρέπει να τροποποιήσετε το αποθηκεύσετε() μέθοδο στο μοντέλο σας και καθορίστε τους δικούς σας κανόνες πριν αποθηκευτούν τα αντικείμενα στη βάση δεδομένων. Ακολουθεί ένα απλό παράδειγμα που μπορείτε να προσθέσετε στην κατηγορία μοντέλων σας:

# εισαγωγή slugify
από django.template.defaultfilters εισαγωγή σιωπηλώνω

defαποθηκεύσετε(εαυτός, *args, **kwargs):
ανδεν self.slug:
self.slug = slugify (self.name)
super().save(*args, **kwargs)

Η παραπάνω συνάρτηση ελέγχει πρώτα εάν υπάρχει γυμνοσάλιαγκας για το αντικείμενο μοντέλου. Εάν δεν υπάρχει γυμνοσάλιαγκος, χρησιμοποιεί το σιωπηλώνω συνάρτηση για τη δημιουργία ενός από το πεδίο ονόματος στο μοντέλο. Μετά την παράκαμψη του αποθηκεύσετε() μέθοδο, ανοίξτε τον πίνακα διαχείρισης και προσθέστε μερικές συνταγές. Αυτή τη φορά, δεν χρειάζεται να συμπληρώσετε το πεδίο γυμνοσάλιαγκας γιατί θα συμπληρωθεί αυτόματα μόλις αποθηκεύσετε τη συνταγή σας.

Εάν μεταβείτε στη σελίδα λεπτομερειών της συνταγής που προστέθηκε πρόσφατα, θα δείτε ότι η διεύθυνση URL χρησιμοποιεί το όνομα της συνταγής ως γυμνοσάλιαγκα.

Μερικές φορές, θα έχετε πολλές συνταγές με το ίδιο όνομα και αυτό θα προκαλέσει σφάλματα στο γυμνοσάλιαγκα σας. Μπορείτε να το διορθώσετε προσθέτοντας ένα μοναδικό στοιχείο στο γυμνοσάλιαγκα σας, όπως την ημερομηνία δημιουργίας. Εδώ είναι ένα απλό παράδειγμα:

self.slug = slugify (self.name + "-" + str (self.date_created))

Χρησιμοποιήστε Slugs για να βελτιώσετε την εμπειρία URL

Σε αντίθεση με το παλιό καλό πκ, οι γυμνοσάλιαγκες παρέχουν πολλά οφέλη, συμπεριλαμβανομένης της ευελιξίας και της φορητότητας, καθώς δεν συνδέονται με συγκεκριμένα αναγνωριστικά URL, όπως το πρωτεύον κλειδί. Επομένως, εάν αλλάξετε τη δομή της βάσης δεδομένων σας ή μεταφέρετε τα δεδομένα σας, μπορείτε να διατηρήσετε συνεπείς διευθύνσεις URL. Οι γυμνοσάλιαγκες ενισχύουν επίσης τη φιλικότητα προς το SEO.