You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:45:06