我正在制作一个web应用程序,它使用用户的输入生成二维码,并将其保存到指定的文件中。保存二维码后,应将生成的二维码显示在输入框旁边的一个小框中。我试图通过让GET submit按钮转到此路由来执行此操作,但每次单击它时都会收到错误消息。
第一个代码块用于接收输入并从中生成二维码,第二个代码块是我尝试发送回完成的PNG并显示它。
Python代码:
@app.route('/', methods= ['POST'])
def textfield():
text = request.form['text']
processed_text = text
if processed_text == '':
flash("Please enter a value!")
else:
QR(processed_text)
return render_template('base.html')
@app.route('/QR', methods= ['GET'])
def QRimage(text):
im = Image.open(f'{text}.png')
data = io.BytesIO()
im.save(data, "PNG")
encoded_img_data = base64.b64encode(data.getvalue())
img_data = encoded_img_data.decode('utf-8')
return render_template('base.html', value=img_data)以下是尝试显示图像的HTML:
<img id="picture" src="data:image/jpeg;base64,{{ img_data }}">以及路由到/QR的GET按钮:
<form action="/QR" method="GET">
<button type="submit" type="button">QR Button</button> 发布于 2021-04-24 11:49:32
Flask在默认的static文件夹中查找静态文件。如果您想提供另一个目录中的文件,请使用flask.send_from_directory(directory, filename, **options)。这是一种快速公开静态文件的安全方法。
@app.route('/QR', methods= ['GET'])
def QRimage(text):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename);参考: API - Flask文档(1.1.x) (2021)。可访问:https://flask.palletsprojects.com/en/1.1.x/api/#flask.send_from_directory (访问:2021年4月24日)。
https://stackoverflow.com/questions/67239085
复制相似问题