【发布时间】:2019-10-11 20:29:53
【问题描述】:
目前我只是想让函数打印它在其中找到的内容 数据库,但是在提交时我在 CLI 中没有得到任何东西 通过具有此功能 URL 作为操作的表单的关键字。
import os
from flask import Flask, render_template, redirect, request, url_for
from flask_pymongo import PyMongo
from bson.objectid import ObjectId
app = Flask(__name__)
app.config["MONGO_DBNAME"] = 'recipe_site'
app.config["MONGO_URI"] = os.getenv("MONGO_URI")
mongo = PyMongo(app)
#function for search bar.
@app.route('/search', methods=['GET', 'POST'])
def search():
mongo.db.recipes.create_index( { "name": "text" } )
if request.method == "POST":
q = request.form['search']
else:
q = ""
query = ( { "$text": { "$search": q } } )
results = mongo.db.recipes.find(query)
return render_template('searchresults.html', recipes = results)
调用搜索函数并捕获关键搜索词的表单:
<form action="{{ url_for('search', text=text) }}" method="POST">
<div>
<div class="input-field">
<input id="search" name="search" type="text" class="validate">
<span class="helper-text" data-error="Try again" data-success="Done"></span>
</div>
</div>
<button type="submit">Submit </button>
</form>
错误代码
- 调试器 PIN:272-267-243 10.240.1.220 - - [25/May/2019 19:24:14] “POST /search/ HTTP/1.1”404 -
就目前的代码而言,我所期望的是它应该打印我的数据库中使用表单搜索关键字的任何集合。
【问题讨论】:
-
你有什么错误吗?
-
我试图重定向到的网页出现 404 错误,但这是可以预料的,因为打印语句不起作用我目前不知道该函数从我的数据库。我在末尾添加了一个 return 'return redirect(url_for('searchresults.html'))'。这也是我的表单操作以帮助诊断。
-
你能把你的整个代码贴出来吗?
-
你用的是哪个mongo客户端?
-
呃,我正在为一门课程做一个完整的食谱网站项目。目前我遇到的唯一问题是尝试使用 pymongo 实现搜索栏来搜索数据库。最初的问题是我正在尝试编写的完整应用程序路线,我将在下面发布我试图捕获关键搜索词的完整表格。
标签: python-3.x mongodb flask pymongo