Python Flask从MYSQL上传和显示图像
我正在使用Flask开发一个网站。在数据库中,我的图像类型为blob,Im使用flask mysql库。我想将图像上传到数据库并在那里显示,但当我试图显示时,我的输出在'goster.html'中没有 这是我的上传表格:Python Flask从MYSQL上传和显示图像,python,mysql,image,flask,flask-mysql,Python,Mysql,Image,Flask,Flask Mysql,我正在使用Flask开发一个网站。在数据库中,我的图像类型为blob,Im使用flask mysql库。我想将图像上传到数据库并在那里显示,但当我试图显示时,我的输出在'goster.html'中没有 这是我的上传表格: class UploadForm(Form): billcontent = StringField("Bill Content") bill = FileField("File") 这里是“/deneme”: @app.ro
class UploadForm(Form):
billcontent = StringField("Bill Content")
bill = FileField("File")
这里是“/deneme”:
@app.route("/deneme",methods = ["POST","GET"])
@login_required
def deneme():
form = UploadForm(request.form)
if request.method == "POST":
billcontent = form.billcontent.data
bill = form.bill.data
company = get_current_user_company()
cursor = mysql.connection.cursor()
sorgu = "Insert into deneme(billcontent,bill,company) VALUES(%s,%s,%s)"
cursor.execute(sorgu,(billcontent,bill,company,))
mysql.connection.commit()
cursor.close()
flash("{} faturası başarıyla eklendi!".format(billcontent))
return redirect(url_for("index"))
return render_template("deneme.html",form=form)
这里是“/goster”:
@app.route("/goster")
@login_required
def goster():
cursor = mysql.connection.cursor()
sorgu = "Select * From deneme "
result = cursor.execute(sorgu)
if result>0:
image = cursor.fetchone()
return render_template("goster.html",image=image)
else:
return render_template("goster.html")
deneme.html:
{% extends "layout.html" %}
{% block middleside %}
{% from "includes/formhelpers.html" import render_field %}
<form method = "POST" enctype="multipart/form-data">
{{ render_field(form.billcontent,class = "form-control") }}
{{ render_field(form.bill,class = "form-control") }}
<button type="submit">Upload Bill</button>
</form>
{% endblock middleside %}
首先,您可以使用
print()
查看从数据库中得到的信息-print(image)
。可能您从数据库中得不到任何信息,或者显示了行中的错误元素。如果图像是以字节形式显示的,则应将其转换为base64
,并以>`的形式显示。您可以使用任何数据库编辑器/查看器直接在数据库中检查行中的内容。Mybe行没有图像,问题在于插入数据时。
{% extends "layout.html" %}
{% block middleside %}
{{image.bill}}
{% endblock middleside %}