首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >liunx+python+django框架实现图片生成二维码

liunx+python+django框架实现图片生成二维码

作者头像
测试小兵
发布2019-11-19 22:28:31
6370
发布2019-11-19 22:28:31
举报
文章被收录于专栏:猪圈子猪圈子

首先我简单的介绍下django;django官网解释就是如下

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

但是它在开发者得嘴里可有着python最美框架,“美男子”之称;它是基于python最有代表性的web框架,

当我听到这个时,觉得还比较吸引我,简单学习了一下,如有不对之处还请各位大神纠正指出

介绍下django得特点:

  • 功能完善、要素齐全:该有的、可以没有的都有,自带大量常用工具和框架,无须你自定义、组合、增删及修改。
  • 完善的文档:经过十多年的发展和完善,Django有广泛的实践案例和完善的在线文档。开发者遇到问题时可以搜索在线文档寻求解决方案。
  • 强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习其他数据库访问技术(SQL、pymysql、SQLALchemy等)。
  • 灵活的URL映射:Django使用正则表达式管理URL映射,灵活性高。新版的2.0,进一步提高了URL编写的优雅性。
  • 丰富的Template模板语言:类似jinjia模板语言,不但原生功能丰富,还可以自定义模板标签,并且与其ORM的用法非常相似。
  • 自带后台管理系统admin:只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台。
  • 完整的错误信息提示:在开发调试过程中如果出现运行错误或者异常,Django可以提供非常完整的错误信息帮助定位问题。

好了简单介绍之后我们来看看在linux中django如何实现将图片生成一张二维码~ 这里我们就直接跳过前端页面上传图片的流程传输倒后台再去生成图片,我们简单的看下,如果直接将一张图片丢django项目中直接执行命令就可以生成一张带二维码得图片;

上篇文章已经输入如何搭建django服务,以及创建项目 创建应用,这里我们接着讲,介绍下项目下的文件信息

startproject 命令创建一个目录,包含4个文件:

文件如下:

__init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它。

manage.py :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。 你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

settings.py :该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值。

urls.py:Django项目的URL设置。 可视其为你的django网站的目录。 目前,它是空的。

尽管这些的文件很小,但这些文件已经构成了一个可运行的Django应用。

在来介绍下项目下得应用app这里着重讲下views文件

app/

在django中views.py 文件可是说是项目的指挥中心,其实views.py文件的作用更像是我们之前提到的MVC模式中的“C”,也就是起到了项目控制的作用。这个文件没有必须的位置和名称,所有的文件使用views的时候都是通过import引用的,这就和你写一个普通的python模块一样。但是通常情况向我们会把这个控制模块以views.py为名称放到每一个app文件夹中,其他功能的模块文件取有一定意义的名字即可。由于有这种模块引用的需求,所以在django工程下的每个目录一般都会有__init__.py文件。

我们可以通过view对urls,模板,模型几个部分起到的作用来描述下这个文件的功能

  • urls文件匹配对应的URL,查找指定的函数进行URL处理,而这个处理函数即包含在views文件中。
  • django中模板多样的写法使前端的展现更加灵活,而这往往需要后端控制函数传递大量数据。Views文件中的函数匹配了对应的URL后会决定使用哪个模板,传递什么样的参数到模板
  • 数据交互是后端功能最为重要的一部分。Views文件引入模型模块,可以进行数据过滤分析提取等数据库操作功能。此外,views文件还能够获取前端的请求,得到表单数据进行比对分析插入数据库等。
  • 由于是前后端连接的桥梁,views在很大程度上还需要对安全性负责,有安全校验的作用
  • 我们之前说过除了基本的网站控制我们还会写其他的“views”,都是逻辑及功能的补充,只是在命名上可以根据需求。比如验证码等功能可以单独写在一个文件中供其他文件调用。

简单介绍了下项目 应用文件信息 接下来讲讲怎么实现 图片生成二维码

这里前提我们要先安装下我们本次使用的模块库

pip3 install MyQR -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

pip3 install views -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

pip3 install app -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

首先我们安装几个必须的库,因为我们这次用到的就是qrcode库底层的myqr模块实现生成二维码

qrcode介绍地址:https://github.com/sylnsfar/qrcode/blob/master/README-cn.md

进入正题>>>

编写views文件,主要实现文件,简简单单十几行代码,调用模块>>myqr实现二维码代码(图二)

备注下几个主要字段

words字段:填写图片访问的地址,例如http://www.baidu.com

picture字段:传入要生成图片的名称,例如项目文件中有一张图片

***.png.这里可以直接写成 picture=‘***.png’

save_name:生成图片的名称 这里我们保持不变 赋值None

save_dir:保存的路径(自定义)

  • 编写项目文件中得urls文件,配置路由
  • 编写项目文件中的settings.py文件设置下相关配置

简简单单实现如下几处文件,基本都是需要用到的,

这里我们直接跳过前端上传文件 ,之前我有篇文章已经写过如果通过django实现前端页面上传文件,这里就不说了,直接看主要的,好了 ,我们可以开始生成了直接传入一张图片倒项目路径 project

直接在当前路径下执行命令

python3 myqr.py https://www.xuanwo001.com -p ./666.jpg

在ll一下查看是否生成666_qrcode.png ;这样我们的一张带二维码得图片就生成了。

具体操作命令以及图片传入传出为什么那样做参考这边文档

https://github.com/sylnsfar/qrcode/blob/master/README-cn.md

如果学习可以现在windows实践,比linux简单,很多库无需安装,pycharm自带。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python测试社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档