用前端和后端实现页面搜索框功能
时间: 2023-07-16 07:14:22 浏览: 243
JS实现前端页面的搜索功能
好的,实现一个基本的搜索框功能需要前端和后端的配合。下面是一个简单的实现过程:
前端实现:
1. 在 HTML 中添加搜索框的输入框和搜索按钮:
```html
<form>
<input type="text" id="search-input" placeholder="请输入搜索内容">
<button type="submit" id="search-btn">搜索</button>
</form>
```
2. 使用 JavaScript 监听搜索按钮的点击事件,在点击时获取输入框中的搜索内容,并将内容发送给后端:
```javascript
const searchBtn = document.getElementById('search-btn');
searchBtn.addEventListener('click', function(event) {
event.preventDefault(); // 阻止表单默认提交事件
const searchInput = document.getElementById('search-input');
const searchContent = searchInput.value;
// 发送搜索请求给后端
fetch(`/search?content=${searchContent}`)
.then(response => response.json())
.then(data => {
// 处理后端返回的搜索结果
})
.catch(error => console.error(error));
});
```
后端实现:
1. 在后端路由中添加搜索路由,处理前端发送的搜索请求:
```python
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/search', methods=['GET'])
def search():
search_content = request.args.get('content')
# 在数据库中进行搜索
# 返回搜索结果
return jsonify(search_results)
```
2. 在后端中连接数据库,实现具体的搜索功能。这里以使用 MySQL 数据库为例:
```python
import mysql.connector
db_config = {
'host': 'localhost',
'user': 'root',
'password': 'password',
'database': 'my_database'
}
cnx = mysql.connector.connect(**db_config)
@app.route('/search', methods=['GET'])
def search():
search_content = request.args.get('content')
cursor = cnx.cursor()
# 在数据库中进行搜索
query = "SELECT * FROM my_table WHERE content LIKE '%{}%'".format(search_content)
cursor.execute(query)
search_results = cursor.fetchall()
cursor.close()
# 返回搜索结果
return jsonify(search_results)
```
以上就是一个简单的前后端配合实现搜索框功能的过程。当然,实际应用中还需要考虑安全性、性能等问题。
阅读全文