flask使用qrcode模块生成二维码

python生成二维码比较方便,可以直接使用qrcode模块,今天我们就来看看如何给flask网站的url生成二维码,首先需要安装两个模块

pip install qrcode pillow

由于我们是给网页使用,所以不存储二维码图片,使其直接存储在内容再发送给前端展示,下面是生成的方式

#生成二维码
def generate_qrcode(url):
    qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=2)
    qr.add_data(url)
    qr.make(fit=True)
    img = qr.make_image(fill='black', back_color='white')
    img_byte_arr = io.BytesIO()
    img.save(img_byte_arr, format='PNG')
    return img_byte_arr.getvalue()

我们是使用的io模块直接存储在内存中,然后在视图函数中使用make_response方法发送到前端,并直接使用png格式图片的方式展示

我的视图函数如下:

#内容页二维码
@article.route('/qrcode/<int:id>', methods=['GET'])
def qrcode(id):
    url = "{}post/{}".format(request.url_root, id)
    qrcode = generate_qrcode(url)
    response = make_response(qrcode)
    response.headers.set('Content-Type', 'image/png')
    return response

前端html代码就直接以图片的方式进行调用即可

<div class="qr_code">
    <img src="{{ url_for('article.qrcode', id=post.id) }}" />
    <p>扫一扫,使用手机浏览</p>
</div>

最后展示可以直接查看本站效果,如果你要把二维码进行保存,可以直接在qr.make_image后面使用save方法进行保存,如下:

img = qr.make_image(fill='black', back_color='white')
img.save("qrcode.png")

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.sulao.cn/post/1038

相关推荐