L o a d i n g
Мой первый шаг в создании сайтов с помощью Django и Python: Реализация поиска новостей Linux Ubuntu

Привет, друзья! Сегодня я продолжаю своё увлекательное путешествие в мир веб-разработки, изучая Django и Python. Один из самых захватывающих моментов моего дня — это освоение техники создания поисковой функции для новостного сайта. Хочу поделиться с вами этим опытом и показать, как это можно реализовать шаг за шагом.

Шаг 1: Настройка модели новостей в Django

Прежде всего, для хранения и отображения новостей на сайте мы определяем модель News. В ней будет несколько основных полей, таких как заголовок новости (titleNews), содержание (content), и дата публикации (published_date).

# models.py

from django.db import models

class News(models.Model):
    titleNews = models.CharField(max_length=200)
    content = models.TextField()
    published_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.titleNews

 

Шаг 2: Создание представления для результатов поиска

Для обработки запросов поиска и отображения результатов мы создаем представление SearchResultsView. Это представление наследуется от ListView и будет отображать список новостей, удовлетворяющих условиям поиска.

# views.py

from django.views.generic import ListView
from .models import News

class SearchResultsView(ListView):
    model = News
    template_name = 'news/search_results.html'
    context_object_name = 'news_search'

    def get_queryset(self):
        query = self.request.GET.get('q')
        if query:
            return News.objects.filter(titleNews__icontains=query)
        return News.objects.all()

 

Шаг 3: Создание шаблона для отображения результатов поиска

Наконец, нам нужно создать шаблон search_results.html, который будет отображать результаты поиска. В этом шаблоне мы используем переменную news_search, которая содержит список новостей, соответствующих запросу пользователя.

<!-- search_results.html -->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Search Results</title>
</head>
<body>
    <h1>Search Results</h1>
    <ul>
        {% for news in news_search %}
            <li>{{ news.titleNews }}</li>
            <p>{{ news.content }}</p>
            <p>Published on: {{ news.published_date }}</p>
        {% empty %}
            <p>No results found.</p>
        {% endfor %}
    </ul>
</body>
</html>

 

Заключение

Создание функции поиска новостей на сайте с помощью Django — это увлекательный и практичный способ применить свои знания веб-разработки на практике. Я рад поделиться этим опытом с вами и надеюсь, что этот пример поможет вам развиваться в создании собственных проектов с использованием Django и Python. Следите за моими новыми достижениями в мире веб-разработки!

Написать комментарий

Вы можете оставить комментарий автору статьи Обязательные поля помечены *