flask + qrcode 二维码直接生成在网页上的方式


### views.py
@app.route("/", methods=["GET", "POST"])
def dwpack():
    """
    二维码生成
    :return:
    """
    try:
        id = request.args.get('package_id')
        byte_io = set_qrcode(url="{0}dowload?id={1}".format(request.host_url, id))
        return send_file(byte_io, mimetype='image/png')
    except Exception, err:
        mylog.error(err)


### qrocde.py 
# -*- coding:utf-8 -*-

from io import BytesIO
import qrcode


def set_qrcode(url):
    """
    根据传入的url 生成 二维码对象
    :param url:
    :return:
    """
    qr = qrcode.QRCode(version=1,  # 二维码大小 1~40
                       error_correction=qrcode.constants.ERROR_CORRECT_L,  # 二维码错误纠正功能
                       box_size=10,  # 二维码 每个格子的像素数
                       border=4)     # 二维码与图片边界的距离

    qr.add_data(url)
    qr.make(fit=True)
    img = qr.make_image()
    byte_io = BytesIO()
    img.save(byte_io, 'PNG')
    byte_io.seek(0)
    return byte_io

你可能感兴趣的:(python)