Как создать простую поисковую систему с помощью Flask

Привет ребята! Это мой первый раз, когда я пишу на Medium. Что я собираюсь сделать здесь, так это написать серию статей, чтобы рассказать о том, как создать поисковую систему на основе электронных таблиц, которая принимает пользовательский ввод и возвращает результат, найденный в формате файла csv, xlxs с использованием Flask и других библиотек. . В этой статье мы обсудим, как составить общую картину и как закодировать нашу домашнюю страницу.

Поисковик использовал следующий пакет:

  • Flask (для сборки ядра поисковой системы)
  • Pandas (Pandas идеально подходит для работы с электронными таблицами)
  • Gspread (для извлечения электронной таблицы из листа Google)

Большая фотография

Первый шаг — самый важный шаг, мы должны знать, что мы будем делать, чтобы уменьшить повторение шагов. Поэтому в начале каждого проекта я всегда сначала рисую большую картину, а затем решаю, как закончить этот проект.

Что нужно поисковику?

Поисковая система должна знать, что ищет пользователь, поэтому мы даем домашней странице поле ввода, и после того, как пользователь вводит запрос, у нас должен быть способ позволить пользователю отправить запрос обратно на сервер «хм…. давайте добавим кнопку отправки. » проблема решена

Как отобразить результаты?

Электронная таблица — это просто таблица, в которой хранится информация, но в другой форме данных, поэтому я хотел бы рассматривать ее как таблицу в html (используя тег ‹table› для отображения результата). Для некоторых пользователей они хотят распечатать результат для какой-то конкретной цели, поскольку наша работа программиста не только создавать вещи, но и выполнять требования клиента.

См. также:  Базар в MVC

Итак, это общая картина нашего проекта, давайте посмотрим, что нам нужно

  • Домашняя страница, на которой пользователь может ввести запрос
  • Страница результатов для отображения результата

После того, как мы набросали внешний вид внешнего интерфейса, мы переходим к решению того, как работает серверная часть.

Что делает поисковик?

  • Принимает пользовательский ввод
  • Возвращает результат
  • Распечатать
  1. Первый процесс выполняется прямо на главной странице, поэтому мы позволяем основному маршруту («/») делать эту работу за нас.
  2. Второй процесс — страница возвращает результат после получения ввода пользователя, поэтому просто позвольте маршруту («/search») обрабатывать эту процедуру поиска.
  3. Последним процессом является распечатка результатов. Мы добавляем еще один маршрут для обработки этого задания («/print»). Я объясню позже, зачем нам нужен этот маршрут.

В итоге мы получили следующую файловую структуру для нашего проекта

SearchEngine
|__ templates
|_____ index.html
|_____ search.html
|_____ print.html
|_main.py

Давай сделаем это

index.html

Он имеет поле ввода 2 элементов и кнопку отправки на основе этого требования, мы напишем index.html, как показано ниже.

<!DOCTYPE html>
<head>
    <title>Simple Search Engine</title>
</head>
<body>
    <form action="/search" method="POST">
        {{form.csrf_token}}
        {{form.ids}}
        {{form.submit}}
    </form>
</body>

{{form.csrf_token}}

{{form.id}}

{{форма.отправить}}

Это элементы из WTForm, потому что мы используем WTForm в качестве нашей основной библиотеки форм.

Базовая форма

Переходя к нашей форме, как я уже говорил, я буду использовать WTForm для рендеринга этой формы. Согласно документу WTForm, «WTForms — это гибкая библиотека проверки и рендеринга форм для веб-разработки на Python. Он может работать с любым веб-фреймворком и механизмом шаблонов, который вы выберете».

class BasicForm(FlaskForm):
    ids = StringField("ID",validators=[DataRequired()])
    submit = SubmitField("Submit")

ids и submit — это имена наших полей, которые будут отправлены обратно из браузера в формате {«ids», «values», «submit», «Submit»}. Это важно отметить, потому что позже мы будем использовать этот способ для получения значения от пользователя.

См. также:  Создайте календарь с помощью Angular и Bootstrap

Основной маршрут @app.route («/»)

@app.route("/",methods =['POST','GET'])
def main():
    form = BasicForm()
    return render_template("index.html",form = form)

Маршрут декоратора сообщает, какой URL-адрес должен запускать нашу функцию (которая запускает функцию main() в приведенной выше ситуации). основная функция инициализирует экземпляр BasicForm и передает его в render_template в качестве переменной. Мы планируем, что «index.html» будет нашей домашней страницей, поэтому render_template должен включать «index.html».

Это все, что нам нужно для домашней страницы, добавьте следующий код и запустите из команды.

if __name__ == "__main__":
    app.run(debug=True)

запустить из команды

python main.py

Вот она, наша домашняя страница. Я позволю этой статье закончиться как часть 1 нашей серии, потому что есть еще много вещей, о которых можно поговорить, если я просто запишу все и опубликую всего в 1 статье, читатели могут легко заскучать. В ближайшие несколько дней я сделаю все возможное, чтобы закончить нашу серию и поделиться с вами, ребята. Вторая часть будет через 3 дня. Если в моей статье есть какие-либо ошибки, которые вас утомили, пожалуйста, оставьте комментарий, чтобы сообщить мне об этом. Спасибо за чтение

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: