#python #html #flask
#питон #HTML #колба
Вопрос:
У меня есть веб-страница, которая должна позволять пользователю выполнять поиск в базе данных, вводя имя элемента, или собирать все элементы определенной категории.
Я предполагаю, что это включает в себя два запроса на публикацию, и хотя у меня есть функция, работающая для поиска имени элемента, я не могу понять, как создать второй запрос на публикацию на той же html-странице для функции поиска по категориям. Любая помощь была бы очень признательна.
Вот моя функция python для поиска. Однако я еще не включил код для запроса на публикацию «Поиск по категориям».
@app.route("/search/", methods = ["GET", "POST"]) def search(): if request.method == "POST": searchQuery = request.form query = searchQuery['query'] results = SqlFunctions.searchName(mycursor, query) return render_template("search.html", results = results) # pseudo code for what the other POST request might look like # if request.method == 'POST': # searchQuery = request.form # query = searchQuery['query'] # results = SqlFunctions.searchCategory(mycursor, query) # return render_template("search.html", results = results) return render_template("search.html", results = None)
Вот мой HTML-код для страницы поиска
{% extends "master.html"%} {% block main %} lt;form class="form" action="" method="POST"gt; lt;divgt; lt;div class="banner"gt; lt;h1gt;Find Your Expenses Easilylt;/h1gt; lt;/divgt; lt;br /gt; lt;div class="row"gt; lt;div class="column"gt; lt;div class="item"gt; lt;label for="fname"gt;Search by item namelt;spangt;*lt;/spangt;lt;/labelgt; lt;input id="fname" type="text" name="query"/gt; lt;/divgt; lt;span id="result"gt;lt;/spangt; lt;formgt; lt;button type="submit" id="calc" value="sName"gt;Submitlt;/buttongt; lt;/formgt; lt;/divgt; lt;div class="column"gt; lt;div class="item"gt; lt;label for="fname"gt;Search by item categorylt;spangt;*lt;/spangt;lt;/labelgt; lt;br /gt; lt;select name="query"gt; lt;option selected value="" disabled selectedgt;lt;/optiongt; lt;option value="1" {% if category is defined and category =='Groceries' %} selected="selected" {%endif%}gt;Grocerieslt;/optiongt; lt;option value="2" {% if category is defined and category =='Transportation' %} selected="selected" {%endif%}gt;Transportationlt;/optiongt; lt;option value="3" {% if category is defined and category =='Entertainment' %} selected="selected" {%endif%}gt;Entertainmentlt;/optiongt; lt;option value="4" {% if category is defined and category =='Rent' %} selected="selected" {%endif%}gt;Rentlt;/optiongt; lt;option value="5" {% if category is defined and category =='Utilities' %} selected="selected" {%endif%}gt;Utilitieslt;/optiongt; lt;option value="6" {% if category is defined and category =='Gifts' %} selected="selected" {%endif%}gt;Giftslt;/optiongt; lt;option value="7" {% if category is defined and category =='Personal' %} selected="selected" {%endif%}gt;Personallt;/optiongt; lt;option value="8" {% if category is defined and category =='Other' %} selected="selected" {%endif%}gt;Otherlt;/optiongt; lt;/selectgt; lt;/divgt; lt;span id="result"gt;lt;/spangt; lt;formgt; lt;button type="submit" id="calc" value="sCategory"gt;Submitlt;/buttongt; lt;/formgt; lt;/divgt; lt;/divgt; lt;/divgt; {% if results is not none %} lt;divgt; {% include "table.html" %} {% endif %} lt;/divgt; lt;/formgt; {% endblock %}
Ответ №1:
Я обычно использую две формы и вместо того, чтобы делать:
if request.method == "POST":
Я делаю что-то вроде этого (кстати, я использую WTForms):
if form1.validate_on_submit(): # process the first form data if form2.validate_on_submit(): # process the second form data