keyword = requestargsgetkeyword # 获取关键字 page = requestargsgetpage type=int # 获取page参数值 if keyword keyword = keywordstrip page_data = SongqueryfilterSongsongNamelike+keyword+order
- 获取请求参数:
keyword = request.args.get('keyword')
page = request.args.get('page', type=int)
从请求中获取参数keyword和page。args是一个字典对象,包含了请求中的参数和值。get()方法是获取字典中对应键的值,如果没有对应键,返回None。type参数用于指定参数类型,如果参数不是指定类型,则返回默认值。
- 搜索关键字:
if keyword:
keyword = keyword.strip()
page_data = Song.query.filter(Song.songName.like('%'+keyword+'%')).order_by(Song.hits.desc()).paginate(page=page, per_page=10)
else:
page_data = Song.query.order_by(Song.hits.desc()).paginate(page=page, per_page=10)
如果有关键字,先去除首尾空格,然后使用filter()方法过滤出包含关键字的歌曲。like()方法用于模糊匹配,%表示匹配任意字符。order_by()方法用于按照点击量排序,desc()表示倒序排列。最后使用paginate()方法进行分页处理,每页显示10条数据。
如果没有关键字,则直接按照点击量排序,分页处理。
- 渲染模板:
return render_template('home/search.html',keyword=keyword,page_data=page_data)
将关键字和分页数据传递给模板,渲染出搜索结果页面
原文地址: https://www.cveoy.top/t/topic/fIKu 著作权归作者所有。请勿转载和采集!