当前位置: 首页 > 知识库问答 >
问题:

从mysql数据库中获取图像并显示在flask网站上

薛鹏飞
2023-03-14

        import mysql.connector
        import base64
        from PIL import Image
        import io
        
        mydb = mysql.connector.connect(
                    host='192.168.0.23',
                    user='pi',
                    passwd='1234',
                    database='Test',
                )
        
        cursor = mydb.cursor()
        query = 'SELECT picture FROM Universities WHERE ID=21'
        cursor.execute(query)
        data = cursor.fetchall()
        image = data[0][0]
        binary_data = base64.b64decode(image)
        image = Image.open(io.BytesIO(binary_data))

app.py

@app.route("/search", methods=["POST", "GET"])
def search_page():

if request.method == "POST":
    major = request.form["major"]
    country = request.form["country"]
    price = request.form["price"]
    universities = search_universities(country, major, price)
    #print(universities)
    if universities != []:
        
        import base64
        from PIL import Image
        import io

        mydb = mysql.connector.connect(
                    host='192.168.0.23',
                    user='pi',
                    passwd='1234',
                    database='Test',
                )

        cursor = mydb.cursor()
        query = 'SELECT picture FROM Universities WHERE ID=22'
        cursor.execute(query)
        data = cursor.fetchall()

        image = data[0][0]

        binary_data = base64.b64decode(image)


        return render_template('result.html', text1 = universities, img_data=binary_data('utf-8', 'ignore'))
    else:
        return render_template('result.html')
return render_template('search.html')

result.html

  {% extends "base.html" %}
   {% block title %} Search {% endblock %}
   {% block style %}{% endblock %}
  {% block body %}


 <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Test Image</title>
    </head>

    <h1 align="center">Resluts</h1>
    {% for text in text1 %}
     <div class="card" id = "element1">
    <img id="picture" src="data:image/png;base64,{{ img_data }}" alt="Avatar" style="width:100%; max- 
     height: 60vh;">
    <div class="container">

    <h4><b>Name: {{ text[0] }}</b></h4>
    <p>Country: {{ text[1]}}</p>
    <p>Major: {{ text[2] }}</p>
    <p>Estemated price: {{ text[3] }}</p>
    <p>link: {{ text[4] }}</p>

     </div>
    </div>
    {% endfor %}
   <div class="card" id = "element1">
   <img src={{url_for('static', filename='pictures/uni2.png')}} alt="Avatar" style="width:20%">
   <div class="container">
  
      <h4><b>Name: </b></h4>
      <p>Country: </p>
      <p>Major: </p>
      <p>Estemated price: </p>
      <p>link: </p>
  
  </div>
  </div>

<p>Here is my variable: {{ text1 }}</p>


  {% endblock %}

共有1个答案

孔华池
2023-03-14

您正在使用这种数据URL来表示图像。数据:image/png;base64,dddddd

它调用数据(在我的示例中为ddddd)进行base64编码。

但是程序的行binary_data=base64.b64decode(image)数据库中获取base64数据并将其更改为二进制。试着跳过那一步。这么做。

return render_template('result.html', text1 = universities, img_data=image)
 类似资料:
  • 但是宽度和高度较低的图像成功地加载到图像视图中! 有人能告诉我代码有什么问题吗?我做错了什么?我只想从库中导入相机图像,并在图像视图中显示它们!

  • 我正在与一位摄影师客户合作创建一个简单的网站,我希望建立一个从Dropbox文件夹中提取的照片库,因此每当她想更新库中的图像时,她只需将照片从Dropbox文件夹中交换出来。很简单,对吧? 有没有办法使用jQuery或PHP从Dropbox目录中提取图像并将其显示到网页上?我已经成功地从Dropbox上的文本文件中提取了文本,但我不知道是否可以对目录中的图像进行相同的操作。 我在谷歌上做了一些搜索

  • 我是姜戈的初学者,对一件事很着迷,我不知道该怎么做。我想显示一个存储在数据库中的图像到我的模板。图像上载到文件夹“static/img”。 这是我的数据库: 这是我的模板: 我的views.py: 使用TEMPLATE_DIRS、STATIC_ROOT和static_url更新settings.py。

  • 我是PHP的新手,需要在一个项目中弄清楚这一点--我用HTML制作了一个image submit表单,它将div中的img更改为使用该表单选择的图像。下面是我如何完成的: 而且 我需要将这个图像上传到我为每个用户在MySql数据库中的medium Blob创建的列中。我尝试了许多不同的方法(尝试了等),但不知道我在做什么。 我现在正在学习本教程-http://www.sevenkb.com/php

  • 问题内容: 我上传了多张图片,并且所有图片的路径都已存储在一起。 使用我已经将它们分开,现在我希望在轮播中回显它们 我正在使用的代码是: 但它只显示一张图像。另外,当我使用next控件时,即使我尝试向前或向后移动,此控件也不会显示任何图像。 问题答案: 这里可能有一些问题… 1.爆炸() 首先,如果您的字符串在文件名之间没有星号,则您可能无法工作。在对OP的回复评论中,您给了我们一个示例的内容,该

  • 被一个问题缠住了。我是android开发的新手。我的问题是我有一个SQLite数据库,我正在其中保存映像和一些数据,但当我检索这些数据时,映像没有显示在ListView中。其他数据正在被推翻。 这是我的自定义列表布局 null 这是我的自定义适配器 } 这是activity 这是数据列表