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")
内容版权声明:除非注明,否则皆为本站原创文章。