نحوه ایجاد جست و جو در task ها

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/11/14
  • تعداد بازدید: 7

برای جستجو، یک فرم کوچک اضافه می‌کنیم که عبارت مورد نظر را از کاربر دریافت کند و سپس فقط آیتم‌هایی که شامل آن عبارت هستند را نمایش دهیم.

به‌روزرسانی app.py برای جستجو

@app.route("/search", methods=["GET"])
def search_todo():
    query = request.args.get("q", "").lower()
    if query:
        filtered = [todo for todo in todos if query in todo["task"].lower()]
    else:
        filtered = todos
    return render_template("index.html", todos=filtered)

به‌روزرسانی index.html برای فرم جستجو

<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <title>Todo App</title>
</head>
<body>
    <h1>Todo List</h1>

    <!-- فرم جستجو -->
    <form action="{{ url_for('search_todo') }}" method="get">
        <input type="text" name="q" placeholder="Search tasks">
        <button type="submit">Search</button>
    </form>

    <form action="{{ url_for('add_todo') }}" method="post">
        <input type="text" name="task" placeholder="New task" required>
        <button type="submit">Add</button>
    </form>

    <ul>
        {% for todo in todos %}
        <li>
            {{ todo.task }}
            <a href="{{ url_for('edit_todo', todo_id=todo.id) }}">Edit</a>
            <a href="{{ url_for('delete_todo', todo_id=todo.id) }}">Delete</a>
        </li>
        {% endfor %}
    </ul>
</body>
</html>

حالا کاربر می‌تواند یک عبارت جستجو وارد کند و فقط تسک‌هایی که شامل آن عبارت هستند نمایش داده شوند. این کار با فیلتر کردن لیست در سرور و استفاده از Jinja انجام می‌شود.

نکته: این جستجو ساده است و حساس به حروف بزرگ و کوچک نیست، چون از lower() استفاده شده است.

با اتمام این قدم، یک CRUD کامل بدون دیتابیس با Flask داریم که شامل ایجاد، خواندن، ویرایش، حذف و جستجو می‌شود.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد
0/600

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.