首页 > 解决方案 > 使用 Segno 即时生成 qrcode

问题描述

如何使用 Segno(qrcode python 库)即时生成 QRCode 以在网页示例中显示为 svg 数据 import segno qr = segno.make('Up Jumped the Devil') svgvar=qr.export_as_svg()

还是更好的主意?

标签: qr-code

解决方案


import segno
# var contains a SVG data URI
var = segno.make('Up Jumped the Devil').svg_data_uri()

var包含 QR 码作为数据 URI:

data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns[...]

可用于将代码直接嵌入到任何 HTML img 中。

另一种选择:将 SVG 写入二进制缓冲区而不是文件:

import segno 
import io
buff = io.BytesIO()
segno.make('Up Jumped the Devil').save(buff, kind="svg")
# Returns the SVG output
buff.getvalue()

buff包含完整的 SVG 文档:

<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="33" height="33" class="segno"><path[...]</svg>

输出不能直接在 HTML 页面中使用,但您可以省略 XML 声明和 SVG 命名空间:

segno.make('Up Jumped the Devil').save(buff, kind="svg", 
           xmldecl=False, svgns=False)

结果buff.getvalue()

<svg width="33" height="33" class="segno"><path[...]</svg>

推荐阅读