Как я могу искать в mongodb, используя HTML-страницу с кнопкой и используя колбу с python? - PullRequest
0 голосов
/ 16 февраля 2019

Привет, я новичок и в фляге, и в html.У меня есть база данных, которая содержит коллекцию документов (представляющих автомобильные маршруты), которые имеют следующую структуру: Document structure

Я хотел бы иметь возможность запросить мой mongodb через HTML-страницуструктурировано так: Html page

Где в первое поле я вхожу (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>

В то время как код 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 и изменить код python в фляге для возможности поиска.Большое вам спасибо.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

извините за задержку, вот подход, который должен работать.

<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>

и питон

@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')

пожалуйста, свяжитесь со мной для дополнительной ясности

0 голосов
/ 16 февраля 2019

Возможно, вы захотите изменить свои входные имена на уникальные значения и установить методы запроса как get, так и post.Используйте request.form ['name'] для получения ввода пользователя, передайте его как запрос к БД и выполните итерацию по всем значениям, чтобы найти совпадение.Я в настоящее время не с моим ноутбуком.Но я скоро опубликую код, который делает то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...