嗨,我是flask和html的新手。 我有一个数据库,其中包含具有以下结构的文档(代表道路)的集合:
在第一个字段中,将我的位置的位置(Lat1,Long1)输入到目的地的第二个字段插入项(Lat2,Long2)中,并通过搜索按钮(如果数据库中存在)输入以下内容;否则它会告诉我“路线不存在”。
我在其中创建按钮的简单而琐碎的index.html如下:
<body>
<h1>Choose your route:</h1>
<form action="/list" method="get" autocomplete="on">
<td><input type="text" name="key" placeholder="Your Position" size="20" /></td>
<td><input type="text" name="key" placeholder="Search Destination" size="20" /></td>
<td><button type="submit">Search</button></td>
<button type="Reset" value="Reset">Reset</button>
</form>
</body>
以下是带有Flash的python代码:
@app.route("/list")
def lists ():
#Display the all Task
return render_template('index.html',h=heading)
@app.route("/search", methods=['GET'])
def search():
#Searching a Task with various references
Lat1=request.values.get("Lat1")
Long1=request.values.get("Long1")
Lat2=request.values.get("Lat2")
Long=request.values.get("Long2")
refer=request.values.get("refer")
#I make the comparison to understand if the route is present in the
database.
if(Lat1 == "Lat1" and Long1 == "Long1" and Lat2 == "Lat2" and Long2 ==
"Long2"):
test_l = tests.find({Lat1:ObjectId(Lat1)})
test_l = tests.find({Long1:ObjectId(Long1)})
test_l = tests.find({Lat2:ObjectId(Lat2)})
test_l = tests.find({Long2:ObjectId(Long2)})
else:
print("Route not present")
return
render_template('searchlist.html',tests=test_l,t=title,h=heading)
searchlist.html页面我不知道如何组织它。 所以我的问题是创建searchlist.html页面并更改flask中的python代码以进行搜索。 非常感谢。
答案 0 :(得分:1)
很抱歉延迟 这是一种可行的方法。
<body>
<h1>Choose your route:</h1>
<form action="/list" method="POST" autocomplete="on">
<td><input type="text" name="mypos" placeholder="Your Position" size="20" /></td>
<td><input type="text" name="yourpos" placeholder="Search Destination" size="20" /></td>
<td><button type="submit">Search</button></td>
<button type="Reset" value="Reset">Reset</button>
和python
@app.route('/list', methods=['GET','POST'])
def lists():
if request.method == 'POST':
my_position = request.form['mypos']#form input on initial position
your_position = request.form['yourpos']#form input on proposed position
pos = my_position.split(',')#split input into lat and long
pos1 = your_position.split(',')
lat1 = pos[0]#lattitude1
long1 = pos[1]#longtitude 1
lat2 = pos1[0]
long2 = pos1[1]
routes = mongo.db.routes#collection where routes are present
check_db = routes.find()#check all documents in collection
#return render_template('searchlist.html', pos=pos, pos1=pos1,lat1=lat1,long1=long1,lat2=lat2,long2=long2)
for record in check_db:
if (record['lat1'] == lat1 and record['lat2'] == lat2 and record['long1'] == long1 and record['long2'] == long2):
return 'route found'
else:
return 'sorry route not found'
return render_template('form.html')
请与我联系以进一步阐明
答案 1 :(得分:0)
您可能希望将输入名称更改为唯一值,并将请求方法设置为get和post。 使用request.form ['name']接收用户输入,将其作为查询传递给数据库,并遍历所有值以查找匹配项。 我目前不在笔记本电脑上。但是我会过一会儿发布符合您要求的代码。