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>

最后的效果

如有问题,欢迎指正。

相关推荐
闻道且行之9 小时前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
许彰午10 小时前
95_Python内存管理与垃圾回收
开发语言·python
骄阳如火10 小时前
Python 性能深度剖析:从“被诟病的慢”到“Rust 重塑”的拐点
python
满怀冰雪11 小时前
03-第一个 Paddle 程序:Tensor 创建、计算与设备管理
人工智能·python·paddle
CClaris11 小时前
大模型量化从0到1(九):用 llama.cpp 把模型转成 GGUF 并跑本地推理
人工智能·pytorch·python·深度学习·llama
学编程的小虎11 小时前
SenseVoice微调
人工智能·python·自然语言处理
诸葛说抛光12 小时前
国内大型汽车改装展览会定展 佛山改装 佛山汽车赛事
python·汽车
摇滚侠12 小时前
SpringBoot3+Vue3 全套视频教程 45-51
前端·javascript·vue.js
chouchuang12 小时前
day-030-综合练习-笔记管理器
开发语言·笔记·python
乖巧的妹子12 小时前
Python基础核心知识点详解:内置函数、运算符、字符串方法、数据结构与类型转换
python