gpt4 book ai didi

python - 如何使用python bottle框架查询mongo数据库

转载 作者:可可西里 更新时间:2023-11-01 09:53:51 26 4
gpt4 key购买 nike

我正在尝试创建一个查询表单,允许我查询我的 mongo 数据库并将结果显示在网页上。为此,我将 python 与 bottle 框架一起使用。这是我的代码示例

import bottle
import pymongo


@bottle.route('/')
def home_page():

#connect to mongodb
connection = pymongo.MongoClient('localhost', 27017)
#connect to mydb database
db = connection.TestCollection
#connect to collection
data = db.TestData
#finding all data
mydata = data.find()

result = []
for i in mydata:
result.append([i['User'],i['Email'],i['Title']])


output = bottle.template('results.tpl', rows=result)

return output

这使用 Bottle 模板 results.tpl 将我的 mongo 数据库中的所有数据打印到网页

    <h1>Results</h1>


<form action="/" method="GET">
enter query: <input name="result" type="text" />
<input type="submit" /><br/>
</form>



<table border="1">
<tbody>
<tr><th>User</th><th>Email</th><th>Title</th></tr>
%for row in rows:
<tr>
%for col in row:
<td>{{col}}</td>
%end
</tr>
%end
<tbody>
</table>

我的问题是我不希望所有数据只显示搜索到的数据。我希望能够使用该表单发出请求,该请求将根据提交的关键字从 mongo 获取数据。如果这种类型的查询网络应用程序可以用其他框架完成,请告诉我。如果您有任何好的链接可以帮助我了解使用请求,我也很乐意。

谢谢。

最佳答案

将搜索作为查询字符串参数传递给您的路线。例如,如果请求是:

http://www.blah.com/?search=foo

那么你的代码应该是这样的:

import re

from bottle import route, request

@bottle.route('/')
def home_page():
search = request.query['search']
search_re = re.compile(search)

# mongo stuff

my_data = data.find({
'$or': [
{'User': {'$regex': search_re}},
{'Email': {'$regex': search_re}},
{'Title': {'$regex': search_re}}
]
})

# do stuff with my_data and template

return output

这可能无法完全按原样运行,但应该足以让您上路。

关于python - 如何使用python bottle框架查询mongo数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51505410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com