Flask单表单双提交按钮如何实现不同跳转路径(手气不错功能)
双提交按钮区分实现方案
1. 修改HTML表单代码
给两个提交按钮添加相同的name属性,以及不同的value属性,表单提交时只会将被点击的按钮的键值对传入请求参数:
<div class="search-bar"> <form action="/search" method="get"> <input type="search" name="q" autocomplete="false" autofocus> <button type="submit" name="action" value="search">Goggle Search</button> <button type="submit" name="action" value="lucky">I'm Feeling Lucky</button> </form> </div>
2. 修改Flask后端逻辑
在视图函数中读取action参数判断用户点击的按钮,走对应的跳转逻辑,新增搜索词编码处理避免特殊字符、中文导致的路径异常:
from urllib.parse import quote @app.get("/search") def search(): """ 1. 捕获搜索关键词 2. 根据点击按钮跳转对应路径 """ q = request.args.get("q", "") # 空搜索处理逻辑可根据需求自行调整 if not q: return redirect("/") action = request.args.get("action", "search") if action == "lucky": return redirect(f'/wiki/?q={quote(q)}') # 默认走原有搜索逻辑 return redirect(f'https://google.com/search?q={quote(q)}')
内容的提问来源于stack exchange,提问作者Frank Casanova
相关产品推荐
相关产品推荐

