如何根据下拉列表值搜索和显示数据?

2024-10-02 04:24:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个flask应用程序来显示下拉列表中某个文件的服务id和一个locate offices按钮

我必须得到的是,每当从下拉列表中选择值时,getoffices webservice应该被触发,并从pandas dataframe和display中获取相应的表。根据这些数据,显示一个Google集群地图,标记返回的办公室的位置(lat和lon在表中)。地图应该是 居中并缩放到适当的级别以显示所有办公室

我有以下html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Services</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <h1>Services from Offices</h1>
 </head>
 <body>
       Service ID: 
      <select name= df_services method="GET" action="/">
      {% for service in table%}
      <option value= "{{ service }}" SELECTED>{{ service }}</option>"
      {% endfor %}
      </select><p><p><p>
      <button type="submit" class="btn btn-success">Locate Offices</button>
 </body>
 </html>

以及web服务getservice的python代码,如下所示,它传递要在下拉列表中显示的serviceid列表

@app.route('/api/v1/resources/getservices', methods=['GET'])
def api_services():
   return render_template('office_map.html',table=lst)

下面的用于webservice的python代码将接收一个整数作为服务id,并将从pandas dataframe df中获取匹配的所有数据并将其传递

@app.route('/api/v1/resources/getoffices', methods=['GET'])
def api_id():
   # Check if an ID was provided as part of the URL.
   # If ID is provided, assign it to a variable.
   # If no ID is provided, display an error in the browser.
   if 'ServiceID' in request.args:
       result = df.loc[df.ServiceID==int(request.args['ServiceID'])]
   else:
       return "Error: No id field provided. Please specify an id."

   return render_template('view.html',table=result.to_html())

当从下拉列表中选择服务id时,应触发getoffices web服务。。。绘制google地图的示例数据是

ServiceID联系人姓名郊区电话号码Lat Lon

1埃尔顿麦肯齐赫斯特维尔(+61)02 35563485-33.975869 151.088939

2埃尔顿麦肯齐赫斯特维尔(+61)02 35563485-33.975869 151.088939

悉尼肯尼思格拉夫斯1号(+61)02 34533466-33.867139 151.207114


Tags: 数据代码inapiwebiddf列表

热门问题