python+vue生成条形码码并展示

需求

最近想做一个小工具,大概要实现这样的效果:后端生成条形码后,不保存到服务器,直接返回给前端展示。

大概思路是,通过 python-barcode库 生成条码的字节流,生成字节流后直接编码成base64格式返回给前端,前端通过img标签展示base64格式的图片。

代码示例

后端代码

以flask为例,其他web框架实现的方法类似。

这里使用Code128格式的条码,可以去python-barcode官网看看,该工具还支持生成其他格式的条码。

复制代码
@app.route('/barcode', methods=['POST'])
def bar_code():
    param_code = request.get_json()['barCode']

    buffer = BytesIO()
    Code128(param_code, writer=SVGWriter()).write(buffer)
    res = base64.b64encode(buffer.getvalue()).decode('utf-8')
    return {
        "code": 200,
        "message": "success",
        "data": res
    }

前端代码

以vue为例

复制代码
<template>
    <img :src="imgUrl" />
</template>

<script setup>
import { onMounted, ref, inject } from 'vue'
const axios = inject("$axios")

const imgUrl = ref(null)

const load_barcode = async () => {

    // 请求后台
    const param = {
        "barCode": "100000902922"
    }
    let res = await axios.post("http://127.0.0.1:5000/barcode", param);
    // 获取base64格式的图片
    const b4 = res.data.data
    // 绑定到img的src
    imgUrl.value = "data:image/svg+xml;base64," + b4
}

onMounted(() => {
    load_barcode()
})

</script>

最后的效果

如有问题,欢迎指正。

相关推荐
2601_962885726 小时前
如何用 Python 计算 TRIX 三重指数平滑均线指标?
开发语言·python
还卿一钵无情泪6 小时前
Unsloth 微调 构建自己的大模型 没有GPU也能微调
linux·开发语言·人工智能·python·大模型·nlp·unsloth
web3d5208 小时前
Vue3 地图白屏排查清单:容器、弹窗与 ol-viewport 重复创建
vue.js·gis
蜗牛互联网8 小时前
Python消费Responses SSE事件:增量文本、超时与取消
java·开发语言·人工智能·后端·python
statistican_ABin9 小时前
中国国际旅游发展分析报告—基于世界银行国际旅游数据的多维度分析
python·机器学习·旅游
青少儿编程课堂9 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门
c++·python·算法·bfs·信息学竞赛
code2cat9 小时前
【随笔】MCP工具注解的信任边界:四个提示如何参与调用决策
python·ai agent·mcp
慢云智慧空间9 小时前
从设备智能到空间理解,慢云科技如何重新定义智慧建筑
python·科技
浮链序9 小时前
用 Claude Haiku 5.5 做子智能体路由,把 Agent 成本砍掉六成
人工智能·python·llm
冯一川9 小时前
安装Pyside 6
python