首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在flask中展示生成的二维码

如何在flask中展示生成的二维码
EN

Stack Overflow用户
提问于 2021-04-24 11:31:42
回答 1查看 223关注 0票数 0

我正在制作一个web应用程序,它使用用户的输入生成二维码,并将其保存到指定的文件中。保存二维码后,应将生成的二维码显示在输入框旁边的一个小框中。我试图通过让GET submit按钮转到此路由来执行此操作,但每次单击它时都会收到错误消息。

第一个代码块用于接收输入并从中生成二维码,第二个代码块是我尝试发送回完成的PNG并显示它。

Python代码:

代码语言:javascript
运行
复制
@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:

代码语言:javascript
运行
复制
<img id="picture" src="data:image/jpeg;base64,{{ img_data }}">

以及路由到/QR的GET按钮:

代码语言:javascript
运行
复制
<form action="/QR" method="GET">
<button type="submit" type="button">QR Button</button>      
EN

回答 1

Stack Overflow用户

发布于 2021-04-24 11:49:32

Flask在默认的static文件夹中查找静态文件。如果您想提供另一个目录中的文件,请使用flask.send_from_directory(directory, filename, **options)。这是一种快速公开静态文件的安全方法。

代码语言:javascript
运行
复制
 @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日)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67239085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档