当前位置: 首页> 科技> 能源 > elementui 远程搜索选择框+后端Flask

elementui 远程搜索选择框+后端Flask

时间:2025/9/12 22:09:29来源:https://blog.csdn.net/roccreed/article/details/141360368 浏览次数:0次

支持远程搜索的select框是一个必备的功能,本文分享如何使用elmentui 实现从后端flask获取数据的el-autocomplete 控件。类似输入一个京字,就从数据库查询所有的城市,模糊匹配到带有京字的城市,并且可以选中。

在这里插入图片描述

1 前端

前端要使用到el-autocomplete控件,输入控件后的提示通过querySearch实现, 选择之后的操作通过handleSelect实现。

<el-autocompletev-model="city":fetch-suggestions="querySearch"placeholder="请输入城市名称"@select="handleSelect"style="width: 300px; margin-left: 10px;"clearable></el-autocomplete>data(){return{city: '',}},methods: {// cb 为回调函数需要把后端返回的值传给它querySearch(queryString, cb) {// 发送请求到Flask后端获取模糊搜索结果getCities(queryString).then(res=>{// 返回数据的形式是 [{value:'xxxx'}, {value:'yyyyy'} ...] 这样cb(res.data.data)})},handleSelect(item) {this.city = item.value; // 选择后将城市名存储在city变量中this.$message('加载'+this.city+'数据成功', 'success', 3000)},},

getCities

// 获取城市列表
export function  getCities(queryString){return request({url: `/tour/cities`,method: 'get',params:{ keyword: queryString }});
}

2 后端

我们要读取景点列表中所有的城市数据,形成一个[{value:‘xxxx’}, {value:‘yyyyy’} …] 形式的数据返回就可以。

# 获取城市
@main.route('/tour/cities', methods=['GET'])
def search_cities():keyword = request.args.get('keyword', '')try:# 查询并去重城市名称,使用SQLAlchemy的distinctcities = Tour.query.with_entities(distinct(Tour.city)).filter(Tour.city.ilike(f'%{keyword}%')).all()# 将结果转换为字典列表result = [{'value': city[0]} for city in cities]return make_response(code=0, data=result)except Exception as e:return make_response(code=1, message=str(e))

3 实现效果

在这里插入图片描述

下一期就来做根据选择框的数据来加载echarts-wordcloud词云(分析景点精选评论文本主题词)

关键字:elementui 远程搜索选择框+后端Flask

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: