目标:使Web应用程序链接到数据库,Web应用程序的用户可以使用名称搜索数据库。相应名称的图像应显示为结果。
数据库如何组织:BLOB是png图像。
| 姓名|图像|
| --------------|--------------|
| 安|BLOB|
| 贝蒂|BLOB|
如果用户搜索名称“Ann”,则应显示Ann的图像。
我不知道如何从数据库中显示图片,并会非常感谢一些帮助。
这是app.py我目前拥有的www.example.com代码。
from flask import Flask, render_template, request, make_response,send_file
import sqlite3
app = Flask(__name__)
def Image(search):
#selection of image from the images table
conn3 = sqlite3.connect('<path to table>')
conn3.row_factory = sqlite3.Row
cursor3 = conn3.cursor()
cursor3.execute("SELECT * FROM Images WHERE Name = ?",
("%"+search+"%",) )
results3 = cursor3.fetchall()
conn3.close
# content and code for the display page
@app.route('/display', methods = ["GET", "POST"])
def display():
if request.method == "POST":
data = dict(request.form)
image = Image(data["search"])
else:
image = []
return render_template('display.html', image = image)
这是template文件夹中的display.html代码。
<!--- PAGE SCALING STATEMENTS - REQUIRED --->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!--- SEARCH BAR FORMATING --->
<form method="post">
<label for="search"> Case Sensitive Search Bar</label>
<br>
<input type="text" name="search" required>
<input type="submit" value="Search">
<br>
<br>
{% if image | length != 0 %}
<img src="{{ image }}" alt="image">
{% else %}
<div id="picture"> No image found</div>
{% endif %}
我刚刚开始编码,这是我的第一个项目之一。任何帮助/建议都非常感谢!!:)
1条答案
按热度按时间kb5ga3dv1#
代码中的一些问题:
1.案例没有正确遵循,图像是我假设的一种方法。
1.图像方法未返回结果
修改后的Image(getImage或get_image)方法代码将为
在这里,我们假设DB中的Image字段保存的是二进制数据。这需要使用以下方法转换为base64等效值:
现在这个encoded_image可以传递给你的render函数了。
最后,这个base54encoded String可以从前端使用下面的html查看:
当然,这将使你的代码工作,但你需要照顾验证,空检查等。
同样的用例,如果在这里很好地解释:
How to pass Base64 image string from Flask Python code to HTML?
希望这能起作用,继续学习。