Django

Comment créer une recherche de base pour un site Django?

Comment créer une recherche de base pour un site Django?

Un contenu particulier de tout site est normalement récupéré par les utilisateurs via la recherche Google. Cependant, si cette option de recherche est implémentée sur le site Web, les utilisateurs peuvent facilement trouver le contenu souhaité sur le site sans utiliser la recherche Google… Un autre avantage de l'ajout d'une option de recherche sur un site Web est que le développeur peut gérer correctement le résultat de la recherche. Cela signifie qu'il peut contrôler quel contenu du site apparaîtra ou non. Ce tutoriel montrera le processus de mise en œuvre de la recherche de base dans le site Django.

Conditions préalables:

Avant de pratiquer le script de ce didacticiel, vous devez effectuer les tâches suivantes :

  1. Installez la version Django 3+ sur Ubuntu 20+ (de préférence)
  2. Créer un projet Django
  3. Exécutez le serveur Django pour vérifier que le serveur fonctionne correctement ou non.

Configurer une application Django :

Exécutez la commande suivante pour créer une application Django nommée searchapp.

$ python3 gérer.py startapp searchapp

Exécutez la commande suivante pour créer l'utilisateur permettant d'accéder à la base de données Django. Si vous avez déjà créé l'utilisateur, vous n'avez pas besoin d'exécuter la commande.

$ python3 gérer.py createsuperuser

Ajoutez le nom de l'application dans la partie INSTALLED_APP des paramètres.fichier py.

INSTALLED_APPS = [

'application de recherche'
]

Créez un dossier nommé modèles dans le dossier searchapp et définissez l'emplacement du modèle de l'application dans la partie MODÈLES des paramètres.fichier py.

MODÈLES = [

… .
'DIRS' : ['/home/fahmida/django_pro/searchapp/templates'],
… .
,
]

Créer des modèles :

Modifier les modèles.py avec le script suivant. Ici, deux classes ont été définies pour créer deux tables relationnelles nommées booktypes et books. Le champ type de la table books est une clé étrangère qui apparaîtra à partir de la table booktypes.

des modèles.py

# Importez les modules nécessaires
de Django.modèles d'importation de base de données
de Django.URL d'importation inversée
# Créer un modèle de type de livre gor
classe Booktype (modèles.Modèle):
btype = modèles.CharField(max_length=100, unique=True)
classe Meta :
ordering=('btype',)
# Créer un modèle de livre de gor
classe Livre (modèles.Modèle):
book_name = modèles.CharField(max_length=150)
nom_auteur = modèles.CharField(max_length=150)
type = modèles.ForeignKey(Booktype, on_delete=modèles.CASCADE)
prix = modèles.ChampFlottant()
publication = modèles.CharField(max_length=100)
classe Meta :
ordering=('book_name',)
def __str__(self):
retourner soi-même.nom_livre
def get_url(self):
return reverse('book_detail', args=[self.identifiant])

Créer des modèles pour la recherche :

Trois fichiers HTML sont nécessaires pour que vous puissiez créer la fonction de recherche présentée dans ce didacticiel. Ce sont book_list.html, book_detail.html et recherche.html. La liste_de_livres.html affichera tous les enregistrements de la table livres. Le book_detail.html affichera les détails d'un livre particulier. La recherche.html affichera le résultat de la recherche après avoir soumis le formulaire de recherche.

liste de livres.html



Liste de livres










% si tapez % tapez.nom % else % Liste de livres % endif %











% pour x dans le livre %

X.nom_livre


par x.nom de l'auteur


$x.le prix




% fin pour %



book_detail.html





livre.nom_livre






livre.nom_livre




Auteur : livre.nom de l'auteur


Tapez : tapez


Publication : livre.publication


Prix : $livre.le prix







rechercher.html



Résultat de la recherche









% si requête %


% avec des résultats.compter comme total_results %
total_results résultat trouvé total_results|pluralize
% terminer par %


% pour c dans les résultats %

c.nom_livre


c.nom de l'auteur


% vider %

Aucun résultat trouvé.


% fin pour %
% fin si %






Créer des fonctions de vue :

Modifier les vues.py avec le script suivant. Trois fonctions ont été définies dans le script. La fonction book_list() affichera la book_list.fichier html. La fonction book_detail() affichera le book_detail.html. La fonction search() recherchera les enregistrements en fonction des données soumises par le formulaire de recherche et affichera le résultat dans la recherche.html.

vues.py

# Importez les modules nécessaires
de Django.raccourcis import rendu,get_object_or_404
de .model import  Book, Booktype
de Django.db.modèles d'importation Q
# Définir la fonction pour afficher tous les livres
def book_list (demande) :
livre = livre.objets.tout()
return render(request, 'book_list.html', 'livre': livre )
# Définir la fonction pour afficher le livre particulier
def book_detail(request,id):
livre = get_object_or_404(Livre, id=id)
types = Type de livre.objets.tout()
t = types.get(id=book.taper.identifiant)
return render(request, 'book_detail.html', 'livre' : livre, 'type' : t.typeb)
# Définir la fonction pour rechercher un livre
def recherche (demande):
résultats = []
si demande.méthode == "OBTENIR":
requête = requête.OBTENIR.obtenir('rechercher')
si requête == " :
requête = 'Aucun'
résultats = Réserver.objets.filter(Q(book_name__icontains=query) | Q(author_name__icontains=query) | Q(price__icontains=query) )
return render(requête, 'recherche.html', 'requête' : requête, 'résultats' : résultats)

Définir les chemins d'accès aux fonctions d'affichage des appels :

Modifier les URL.py du projet Django avec le script suivant. Quatre chemins ont été définis dans le script. Le chemin 'admin/' est utilisé pour ouvrir le tableau de bord administratif de Django. Le chemin vide(") est utilisé pour appeler la fonction book_list(). '/' chemin est utilisé pour appeler la fonction book_detail(). Le chemin 'search/' est utilisé pour appeler la fonction search().

URL.py

# Importer le module d'administration
de Django.administrateur d'importation de contribution
# Module de chemin d'importation
de Django.chemin d'importation des URL
# Vue d'importation
à partir des vues d'importation de searchapp
# Définir des chemins
urlpatterns = [
chemin('admin/', admin.placer.URL),
chemin(", vues.liste_livres, nom='liste_livres'),
chemin('/', vues.book_detail, name='book_detail'),
chemin('recherche/', vues.recherche, nom='recherche'),
]

Exécutez l'application depuis le navigateur :

Exécutez la commande suivante pour exécuter le serveur Django.

$ python3 gérer.py runserver

Exécutez l'URL suivante depuis n'importe quel navigateur pour afficher la liste des livres de la table.

http://localhost:8000

Si l'utilisateur clique sur le lien « PHP et MySQL pour les sites Web dynamiques », les détails de ce livre apparaîtront dans le navigateur.

Si l'utilisateur recherche le mot, physique dans le navigateur, le résultat de recherche suivant s'affichera dans le navigateur.

Conclusion:

Une application Django avec l'option de recherche de base a été implémentée dans ce tutoriel en utilisant des tables de base de données. Les nouveaux développeurs Django pourront implémenter la fonction de recherche sur leur site web après avoir lu ce tutoriel.

Tutoriel Bataille pour Wesnoth
The Battle for Wesnoth est l'un des jeux de stratégie open source les plus populaires auxquels vous pouvez jouer en ce moment. Non seulement ce jeu es...
0 A.ré. Didacticiel
Sur les nombreux jeux de stratégie disponibles, 0 A.ré. parvient à se démarquer comme un titre complet et un jeu tactique très profond bien qu'il soit...
Tutoriel Unity3D
Introduction à Unity 3D Unity 3D est un puissant moteur de développement de jeux. C'est une plateforme multiplateforme qui vous permet de créer des je...