python - 如何在烧瓶中显示生成的二维码
问题描述
我正在制作一个使用用户输入生成二维码并将其保存到指定文件中的网络应用程序。二维码保存后,应在输入框旁边的小框中显示生成的二维码。我试图通过一个 GET 提交按钮来执行此操作,但每次单击它时都会收到错误消息。
第一个代码块用于接收输入并从中制作二维码,第二个代码块是我尝试发回完成的 PNG 并显示它。
蟒蛇代码:
@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>
解决方案
Flaskstatic
在默认的文件夹中查找静态文件。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 日)。
推荐阅读
- docker - `coverage combine` 来自不同容器的结果?
- java - Java中OR运算符的不同行为
- javascript - VueJS - 如何在数据更改时滚动底部
- php - 如果产品在购物车中,则添加类以添加到 woocommerce 中的购物车按钮
- shell - 使用直线的 Oozie shell 动作
- powerbi - 如何在不使用桥接表的情况下拥有响应切片器值的动态轴,仅使用 DAX
- python - 如何将 pandas DataFrame 转换为 reportlab 模块中的表格?
- firebase - 查询算作 Firestore 中的读数吗?
- javascript - S3 在 Promise 中下载到 FileStream?
- javascript - 为光滑滑块设置高度仅在页面完成加载后运行