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

Flask如何获取点击链接文本并在渲染页面展示?

解决Flask中获取点击链接文本内容的问题

嘿,很遗憾并没有你提到的那种get_clicked_animal_name_from_previous_page()函数直接可用,但有几种非常实用的方法能实现你想要的效果,下面给你详细说明:

方法一:使用URL查询参数

这是最直接的方式,你可以把动物名称作为查询参数附加到URL后面:

修改前端链接代码:

<li><a href="/animals?animal=cat">cat</a></li>
<li><a href="/animals?animal=dog">dog</a></li>
<li><a href="/animals?animal=dragon">dragon</a></li>

Flask后端处理:

你需要导入request对象来获取URL里的查询参数:

from flask import Flask, render_template, request

@app.route('/animals', methods=['GET'])
def animals():
    # 获取查询参数里的animal值,可设置默认值避免空值问题
    selected_animal = request.args.get('animal', default=None)
    return render_template('animals.html', title='Animal Details', animal=selected_animal)

方法二:使用URL路径变量(更RESTful的方式)

这种方式会让你的URL结构更清晰,符合REST设计风格,也是推荐的做法:

修改前端链接代码:

<li><a href="/animals/cat">cat</a></li>
<li><a href="/animals/dog">dog</a></li>
<li><a href="/animals/dragon">dragon</a></li>

Flask后端处理:

修改路由规则,把动物名作为路径的一部分,直接在函数参数里接收:

from flask import Flask, render_template

@app.route('/animals/<animal>', methods=['GET'])
def animals(animal):
    # 这里的animal参数就是URL里的动物名称,直接使用即可
    return render_template('animals.html', title='Animal Details', animal=animal)

方法三:使用表单提交(适合POST场景)

如果你的需求需要用POST方法(比如涉及敏感数据,不过这个场景下必要性不高),可以把链接换成表单提交按钮:

前端代码:

<li>
    <form action="/animals" method="POST" style="display: inline;">
        <button type="submit" name="animal" value="cat" style="background:none; border:none; color:blue; text-decoration:underline; cursor:pointer;">cat</button>
    </form>
</li>
<li>
    <form action="/animals" method="POST" style="display: inline;">
        <button type="submit" name="animal" value="dog" style="background:none; border:none; color:blue; text-decoration:underline; cursor:pointer;">dog</button>
    </form>
</li>

Flask后端处理:

from flask import Flask, render_template, request

@app.route('/animals', methods=['GET', 'POST'])
def animals():
    selected_animal = None
    if request.method == 'POST':
        selected_animal = request.form.get('animal')
    return render_template('animals.html', title='Animal Details', animal=selected_animal)

小提示

  • 方法一和方法二更贴合你的场景,因为都是GET请求,完全符合普通链接的使用习惯
  • 方法二的URL结构更整洁直观,推荐优先采用

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:59:08