以下是使用 Django 实现商品搜索功能的后端代码示例:

from django.db.models import Q
from django.shortcuts import render
from .models import Product

def search_products(request):
    query = request.GET.get('q')
    results = Product.objects.filter(
        Q(name__icontains=query) |
        Q(description__icontains=query)
    )
    context = {
        'results': results,
        'query': query
    }
    return render(request, 'search.html', context)

在上面的代码中,我们首先从请求参数中获取搜索关键字。然后,我们使用 Django 的 Q 对象来构建查询条件,以便在商品的名称或描述中查找包含搜索关键字的商品。最后,我们将查询结果和搜索关键字传递给模板,以供前端展示。

前端代码示例

前端代码可以根据具体需求进行设计,以下是一个简单的搜索表单和结果展示的示例:

<!-- search.html -->
<form method="get" action="{% url 'search_products' %}">
    <input type="text" name="q" placeholder="Search..."/>
    <button type="submit">Search</button>
</form>

{% if results %}
    <h2>Search results for '{{ query }}':</h2>
    <ul>
    {% for product in results %}
        <li>{{ product.name }}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>No results found.</p>
{% endif %}

在上面的代码中,我们首先创建一个搜索表单,其中输入框的名称为“q”,并指定了搜索页面的 URL。然后,我们检查是否有搜索结果,并在页面上展示出来。我们使用了 Django 模板语言的语法来循环遍历搜索结果,并展示商品的名称。如果没有搜索结果,我们展示一条相应的消息。

注意,我们在模板中使用了“{% url 'search_products' %}”来生成搜索页面的 URL,其中“search_products”是我们在后端代码中定义的搜索视图函数的名称。这种做法可以使我们的代码更加灵活,如果我们需要更改搜索页面的 URL,只需要修改后端代码即可,模板代码不需要改动。

Django 商品搜索功能实现:后端代码示例

原文地址: https://www.cveoy.top/t/topic/op9L 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录