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

在Flask路由中如何同时返回两个不同类型的内容?

错误原因说明

你尝试的几种写法出错的核心逻辑分别是:

  • 用逗号分隔两个返回值:Flask会把逗号后的值识别为响应状态码、响应头等附加配置,不会输出到响应体中
  • 用分号分隔内容:Python中分号是语句分隔符,分号后的代码不会作为return的返回值
  • 直接写{{ named }}:双大括号是Jinja2模板的专属语法,你直接返回普通字符串不会触发模板渲染,所以会原样输出
  • 用and连接两个值:Python的逻辑运算符and会返回最后一个为真的对象,所以只会输出后面的图片标签

正确实现方案

将变量和HTML标签拼接为同一个字符串返回即可,两种常用写法:

写法1:f-string拼接(Python3.6+推荐,最简洁)

from flask import Flask
import random
app = Flask(__name__)
@app.route("/")
def index():
    name = ('qwerty', 'uiopa', 'sdfgh', 'jklzx', 'cvbnm')
    named = random.choice(name)
    return f"{named}<img src='https://picsum.photos/800/450'>"

写法2:加号拼接

return named + "<img src='https://picsum.photos/800/450'>"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:15:03