基于Python实现在线二维码生成工具

 更新时间:2022年05月17日 14:31:20   作者:费弗里  
这篇文章将为大家展示如何通过纯Python编程的方式,开发出一个网页应用—基于输入的网址等文字内容实现二维码的生成,感兴趣的可以学习一下

在今天的教程中,费老师我将为大家展示如何通过纯Python编程的方式,开发出一个网页应用,从而帮助用户直接通过浏览器访问,即可基于输入的网址等文字内容,完成常规二维码、静态底图二维码以及动图底图二维码的快捷生成,先来看一看应用的主要功能操作演示:

只写Python开发这样精致的工具应用非常简单,下面我来带大家从搭建环境开始,学习整个过程:

1.环境搭建

首先我们来创建应用的虚拟开发环境,建议使用Conda,命令如下:

创建虚拟环境并激活

conda create -n dash-qr-generator python=3.8 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ -y

conda activate dash-qr-generator

安装相关依赖

为了可以纯Python快速开发我们的应用,我们需要安装dash及我的开源组件库feffery-antd-components,另外还需要安装用于二维码生成的第三方库amazing-qr,全部安装命令如下:

pip install dash feffery-antd-components amzqr

全部执行完成后我们的应用开发运行环境就准备好了~,接下来只需要在本文附件解压后的根目录执行python app.py,接着访问本机的127.0.0.1:8050网址即可使用我们的应用。

2.二维码生成功能的封装

因为使用到amazing-qr这个库来进行常规二维码或自定义底图二维码的生成,为了方便在应用中快速调用,我们可以对其进行简单封装,由于amazing-qr在指定底图素材时不能设置目录,只能使用当前工作目录中的图片,因此我们需要在生成图片前切换工作目录到素材所在的目录,并在生成二维码结束后还原先前的工作目录:

utils.py

import os
from amzqr import amzqr
from pathlib import Path

def generate_qr(mode: str = 'default',
                words: str = None,
                version: int = None,
                level: str = None,
                picture_dir: str = None,
                picture: str = None,
                contrast: float = None,
                brightness: float = None,
                save_name: str = None,
                save_dir: str = None):
    '''
    用于控制二维码图片的生成
    :param mode: 模式,可选的有default(常规二维码static(静态底图)和motion(动态底图),默认为default
    :param words: 二维码需要嵌入的信息
    :param version: 边长大小,取值在1到40之间,越大图片越精细
    :param level: 纠错水平,可选的有L、M、Q、H,从左往右越大越精准
    :param picture_dir: 底图文件的绝对路径
    :param picture: 底图文件名
    :param contrast: 对比度,取值在0到1之间
    :param brightness: 亮度,取值在0到1之间
    :param save_name: 导出文件名
    :param save_dir: 导出文件绝对路径
    :return:
    '''

    # mode: default
    if mode == 'default':

        _ = amzqr.run(
            words=words,
            version=version,
            level=level,
            save_name=save_name,
            save_dir=save_dir
        )

    # mode: static | motion
    elif mode == 'static' or mode == 'motion':

        origin = Path().absolute()

        os.chdir(Path('caches', picture_dir))

        _ = amzqr.run(
            words=words,
            version=version,
            level=level,
            picture=picture,
            colorized=True,
            contrast=contrast,
            brightness=brightness,
            save_name=save_name,
            save_dir=os.getcwd()
        )

        os.chdir(origin)

3.网页应用的搭建

在前面二维码生成函数编写完成的基础上,下面进入我们的重点——搭建网页应用,得益于dash中构建交互式网页应用的简单性和极高的自由度(远高于streamlit等玩具库),配合我的开源组件库框架fachttps://github.com/CNFeffery/feffery-antd-components)中近百种具有不同功能的组件,你可以利用它们快速构建出具有各种常见功能的网页应用。

在我们的“在线二维码图片生成器”中,通过顶部AntdRadioGroup()构建的单选按钮在三种模式中进行切换,从而通过回调函数影响下面操作区所渲染出的各个表单输入类组件,如文字输入框AntdInput()、滑动输入框AntdSlider()、下拉选择AntdSelect()等:

尤其是当用户切换到“静态底图”和“动态底图”模式时,由于需要用户上传提供底图素材,因此额外会渲染出图片上传组件AntdPictureUpload(),它在“静态底图”模式下还具有图片缩放、裁切编辑功能,只需要一个参数editable=True即可实现:

最后通过回调函数中不同模式下的参数组合,将后台生成并导出的二维码结果图片推送至前端利用AntdImage()一气呵成进行交互式展示,用户即可直接右键另存为保存到本地:

本期的例子仅仅是展示了fac能力的冰山一角,事实上只要你善于利用fac中的不同功能组件,从在线小工具,到数据中台平台,都可以仅通过编写Python程序轻松实现

到此这篇关于基于Python实现在线二维码生成工具的文章就介绍到这了,更多相关Python二维码生成内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python爬虫+tkinter界面实现历史天气查询的思路详解

    Python爬虫+tkinter界面实现历史天气查询的思路详解

    这篇文章主要介绍了Python爬虫+tkinter界面实现历史天气查询的思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • PyCharm鼠标右键不显示Run unittest的解决方法

    PyCharm鼠标右键不显示Run unittest的解决方法

    今天小编就为大家分享一篇PyCharm鼠标右键不显示Run unittest的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python导包的几种方法(自定义包的生成以及导入详解)

    python导包的几种方法(自定义包的生成以及导入详解)

    这篇文章主要介绍了python导包的几种方法(自定义包的生成以及导入详解),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python抓取网页图片并放到指定文件夹

    python抓取网页图片并放到指定文件夹

    这篇文章主要介绍了python抓取网页图片并放到指定文件夹,需要的朋友可以参考下
    2014-04-04
  • react+django清除浏览器缓存的几种方法小结

    react+django清除浏览器缓存的几种方法小结

    今天小编就为大家分享一篇react+django清除浏览器缓存的几种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python利用pandas分析学生期末成绩实例代码

    python利用pandas分析学生期末成绩实例代码

    pandas是数据分析师最常用的工具之一,这篇文章主要给大家介绍了关于python如何利用pandas分析学生期末成绩的相关资料,文中给出了详细的实现方法,需要的朋友可以参考下
    2021-07-07
  • 强悍的Python读取大文件的解决方案

    强悍的Python读取大文件的解决方案

    今天小编就为大家分享一篇关于强悍的Python读取大文件的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Python安装spark的详细过程

    Python安装spark的详细过程

    这篇文章主要介绍了Python安装spark的详细过程,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Python把图片转化为pdf代码实例

    Python把图片转化为pdf代码实例

    这篇文章主要介绍了Python把图片转化为pdf代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python3爬虫使用Fidder实现APP爬取示例

    Python3爬虫使用Fidder实现APP爬取示例

    这篇文章主要介绍了Python3爬虫使用Fidder实现APP爬取示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论