Я работаю в поисковой системе, в которой вы вводите текст, который вы хотите найти, в URL или в поле ввода ввода. Это работает нормально, когда я помещаю текст поиска в URL вручную, и результаты поиска отображаются нормально, но когда я отправляю запрос через окно поиска, текст не появляется в URL, например, это приводит к "http://127.0.0.1: 5000 / search / " или "http://127.0.0.1: 5000 / search /"вместо требуемого" http://127.0.0.1: 5000 / search / searchtext"
вот HTML формы:
<form action="{{url_for('search' , searched=searched)}}" method="post">
<div class="search-box">
<input type="text" name="" class="search-txt" placeholder="search..." name="searched"/>
<button type="submit" class="search-btn">
<i class="fas fa-search"></i>
</button>
</div>
</form>
и вот маршрут приложения Flask:
@app.route("/search/<string:searched>",methods=["POST","GET"])
def search(searched):
if request.method=="POST":
search=request.form.get("Searched")
titles=db.execute("SELECT title FROM books WHERE title LIKE :search OR isbn LIKE :search OR author like :search or year LIKE :search"
,{"search":search}).fetchall()
books=[]
for title in titles:
title=str(title).strip(" () [] \', \"")
books.append(title)
return render_template("searched.html",titles=books)
if request.method=="GET":
titles=db.execute("SELECT title FROM books WHERE title LIKE :search OR isbn LIKE :search OR author like :search or year LIKE :search"
,{"search":searched}).fetchall()
books=[]
for title in titles:
title=str(title).strip(" () [] \', \"")
books.append(title)
return render_template("searched.html",titles=books)
я попытался изменить метод запроса формы на «GET» вместо «POST», а затем принять ввод из формы равным «искомому», как итак:
@app.route("/search/<string:searched>",methods=["GET"])
def search(searched):
if request.method=="GET":
searched=request.form.get("searched")
titles=db.execute("SELECT title FROM books WHERE title LIKE :search OR isbn LIKE :search OR author like :search or year LIKE :search"
,{"search":searched}).fetchall()
books=[]
for title in titles:
title=str(title).strip(" () [] \', \"")
books.append(title)
return render_template("searched.html",titles=books)
, но, похоже, это тоже не сработало и все равно вернул пустой URL-адрес, например: "http://127.0.0.1: 5000 / search / "
извините, если что-то очевидно, я все еще новичок в этом
спасибо большое заранее!