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

如何将SQL中的MEDIUMBLOB内容显示到HTML页面?现有代码无输出

问题分析与修复方案

你的代码存在几个关键问题,导致iframe显示空白:

  • 请求方式不匹配:iframe通过GET请求访问/text,但代码里判断'name' in request.form(这是POST请求的参数逻辑),GET请求下这个条件永远不成立,自然没有内容返回。
  • 数据库数据获取逻辑错误:cursor.execute()返回的是查询影响的行数,不是实际查询结果,你用open()去打开这个数字完全是逻辑错误,应该用cursor.fetchone()获取单条查询结果。
  • 没有输出数据:就算拿到了BLOB数据,你的generate函数也没有把数据输出出去,需要通过yield返回内容。

修正后的代码

main.py

@app.route("/text")
def text():
    def generate():
        # GET请求用request.args获取参数
        name = request.args.get('name')
        if name:
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            cursor.execute("SELECT transcript from `movies` WHERE movie_name = %s", [name])
            # 获取单条查询结果
            result = cursor.fetchone()
            if result:
                # 直接返回MEDIUMBLOB存储的内容
                yield result['transcript']
    return app.response_class(generate(), mimetype='text/plain')

view.html

需要给iframe的src带上name参数(示例里直接指定,实际可根据业务逻辑动态生成):

<div class="top">
<h1>APPLES</h1>
    </div>

{% block content %}
<div class="scontainer">
    <div id="list">
        <!-- 替换成实际的电影名称 -->
        <iframe src="/text?name=你的电影名" height="400" width="600"></iframe>
    </div>
</div>
{% endblock %}

</body>
</html>

额外说明

如果你的MEDIUMBLOB存储的是HTML内容,把mimetype='text/plain'改成mimetype='text/html',iframe就能正确解析格式了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:20:04