欢迎访问宙启技术站
智能推送

Django中使用Input()控件创建搜索框示例

发布时间:2023-12-16 14:15:21

在Django中,可以使用Input()控件来创建搜索框。Input()控件是一个HTML输入框,可以接受用户输入的文本。

首先,在Django的HTML模板中创建一个搜索框的表单,可以使用以下代码:

<form action="{% url 'search' %}" method="GET">
    <input type="text" name="query" placeholder="Search...">
    <input type="submit" value="Search">
</form>

在上面的代码中,我们使用了一个HTML表单,设置了action属性为一个名为'search'的URL,并且设置了表单的method为GET。输入框使用了Input()控件,设置了名称为'query',并且添加了一个占位符文本"Search..."。同时,我们还添加了一个提交按钮。

接下来,在Django的URL配置文件中,将'search'的URL映射到一个视图函数中:

from django.urls import path
from . import views

urlpatterns = [
    path('search/', views.search_view, name='search'),
]

在上面的代码中,将请求的URL以'search/'开头的请求映射到名为'search_view'的视图函数上。

最后,在Django的views.py文件中定义'search_view'视图函数来处理搜索请求:

from django.shortcuts import render

def search_view(request):
    query = request.GET.get('query', '')  # 获取用户输入的文本
    # 处理搜索逻辑
    results = run_search(query)  # 运行搜索逻辑函数,返回搜索结果

    return render(request, 'search_results.html', {'results': results})

在上面的代码中,我们首先使用request.GET.get()方法获取用户在搜索框中输入的文本,参数'query'是输入框的名称。然后,我们可以根据输入的文本运行搜索逻辑,并将搜索结果作为变量传递给模板。

最后,我们可以在一个名为'search_results.html'的模板中展示搜索结果:

{% for result in results %}
    <p>{{ result }}</p>
{% empty %}
    <p>No results found.</p>
{% endfor %}

在上述模板中,我们使用了Django的模板语法,在一个遍历循环中展示搜索结果。如果没有搜索结果,则会展示一个"No results found."的信息。

这就是使用Input()控件创建搜索框的示例。通过使用Django的表单和模板系统,我们可以很容易地创建一个用户友好的搜索功能。