qr-code - 使用 Segno 即时生成 qrcode
问题描述
如何使用 Segno(qrcode python 库)即时生成 QRCode 以在网页示例中显示为 svg 数据 import segno qr = segno.make('Up Jumped the Devil') svgvar=qr.export_as_svg()
还是更好的主意?
解决方案
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>
推荐阅读
- sql - 筛选单列上的 SELECT 结果
- javascript - 关于如何使用反应路由器渲染的问题
- django - 模型字段上的 Django getter
- html - html 水平无序列表 - 由 prestashop 覆盖
- python - 如何使用 py2neo 计算与节点的关系(一种类型)
- ios - 关于在应用商店处理 iAP 成功的问题
- hadoop - Hadoop 2.7.7,无法使用端口 8088 打开资源管理器 Web
- java - 上下文初始化期间遇到异常
- haskell - 每个元素与前一个元素最多相差 1 的随机列表
- sql - SQL Server 2008 R2 - sp_send_dbmail