前端通过搜索框搜索野生动物的名字,可以将野生动物分布的省份展示在地图上,前端发送请求,后端使用python访问MySQL数据库进行实现,代码怎么写
时间: 2023-06-20 17:05:31 浏览: 111
前端代码:
1. 首先,需要在 HTML 文件中添加一个搜索框和一个按钮:
```html
<input type="text" id="animalName" placeholder="输入野生动物名称"/>
<button onclick="searchAnimal()">搜索</button>
```
2. 在 JavaScript 文件中编写 `searchAnimal()` 函数,该函数将获取搜索框中的野生动物名称并向后端发送请求:
```javascript
function searchAnimal() {
const animalName = document.getElementById('animalName').value;
fetch(`/search?animal=${animalName}`)
.then(response => response.json())
.then(data => {
// 处理从后端返回的数据
// 将省份展示在地图上
});
}
```
3. 向后端发送的请求为 `/search?animal=xxx`,其中 `xxx` 为搜索框中输入的野生动物名字。
后端代码:
1. 首先,需要在 Python 中安装 MySQL 驱动程序,例如 `mysql-connector`:
```python
pip install mysql-connector
```
2. 然后,需要编写一个 Flask 应用程序,该应用程序将接收前端发送的搜索请求并查询 MySQL 数据库:
```python
from flask import Flask, request, jsonify
import mysql.connector
app = Flask(__name__)
@app.route('/search')
def search_animal():
animal = request.args.get('animal')
cnx = mysql.connector.connect(user='...', password='...', host='...', database='...')
cursor = cnx.cursor()
query = f"SELECT DISTINCT province FROM animal_distribution WHERE animal_name='{animal}'"
cursor.execute(query)
provinces = [row[0] for row in cursor.fetchall()]
cursor.close()
cnx.close()
return jsonify(provinces)
```
其中,`animal_distribution` 表格包含了野生动物的分布信息,包括 `animal_name` 和 `province` 两列。
3. 最后,需要运行 Flask 应用程序:
```python
if __name__ == '__main__':
app.run()
```
当用户在前端搜索框中输入野生动物的名字并点击搜索按钮时,前端会向后端发送请求 `/search?animal=xxx`,后端将查询 MySQL 数据库并返回该野生动物分布的所有省份。接着,前端将从后端返回的数据展示在地图上。
阅读全文