Python及Django框架生成二维码的方法分析

 更新时间:2018年01月31日 11:31:39   作者:刘元涛  
这篇文章主要介绍了Python及Django框架生成二维码的方法,结合实例形式分析了Python及Django框架使用qrcode包实现二维码生成功能的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python及Django框架生成二维码的方法。分享给大家供大家参考,具体如下:

一、包的安装和简单使用

1.1 用Python来生成二维码很简单,可以看 qrcode 这个包:

pip install qrcode

qrcode 依赖 Image 这个包:

pip install Image

如果这个包安装有困难,可选纯Python的包来实现此功能,见下文。

1.2 安装后就可以使用了,这个程序带了一个 qr 命令:

qr 'http://www.ziqiangxuetang.com' > test.png

1.3 下面我们看一下如何在 代码 中使用

import qrcode
img = qrcode.make('http://www.tuweizhong.com')
# img <qrcode.image.pil.PilImage object at 0x1044ed9d0>
with open('test.png', 'wb') as f:
  img.save(f)

这样就可以生成一个带有网址的二维码,但是这样得把文件保存到硬盘中。

【备注】:纯Python的包的使用:

安装:

pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png

使用方法大致相同,命令行上:

qr --factory=pymaging "Some text" > test.png

Python中调用:

import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make('Some data here', image_factory=PymagingImage)

二、Django 中使用

我们可以用 Django 直接把生成的内容返回到网页,以下是操作过程:

2.1 新建一个 zqxtqrcode 项目,tools 应用:

django-admin.py startproject zqxtqrcode
python manage.py startapp tools

2.2 将 tools 应用 添加到 项目 settings.py 中

INSTALLED_APPS = (
  ...
  'tools',
)

2.3 我们修改 tools/views.py

from django.http import HttpResponse
import qrcode
from cStringIO import StringIO
def generate_qrcode(request, data):
  img = qrcode.make(data)
  buf = StringIO()
  img.save(buf)
  image_stream = buf.getvalue()
  response = HttpResponse(image_stream, content_type="image/png")
  response['Last-Modified'] = 'Mon, 27 Apr 2015 02:05:03 GMT'
  response['Cache-Control'] = 'max-age=31536000'
  return response

上面对返回结果进行了处理,浏览器会缓存图片,提高再次加载的速度。Cache-Control 和 Last-Modified 不懂的可以看一下 HTTP协议 相关知识。

2.4 添加视图函数到 zqxtqrcode/urls.py

url(r'^qrcode/(.+)$', 'tools.views.generate_qrcode', name='qrcode'),

2.5 同步数据库,打开开发服务器:

python manage.py syncdb
python manage.py runserver

参考:https://pypi.python.org/pypi/qrcode/

PS:这里再为大家推荐一款二维码在线生成工具供大家参考使用:

在线生成二维码工具(加强版)
http://tools.jb51.net/transcoding/jb51qrcode

更多关于Python相关内容可查看本站专题:《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python 的lru_cache装饰器使用简介

    Python 的lru_cache装饰器使用简介

    这篇文章主要介绍了Python 的lru_cache 装饰器使用简介,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python散点图双轴设置坐标轴刻度的实现

    python散点图双轴设置坐标轴刻度的实现

    散点图是一种常用的图表类型,可以用来展示两个变量之间的关系,本文主要介绍了python散点图双轴设置坐标轴刻度的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 如何通过python计算圆周率PI

    如何通过python计算圆周率PI

    这篇文章主要介绍了如何通过python计算圆周率PI,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python如何使用OS模块调用cmd

    Python如何使用OS模块调用cmd

    这篇文章主要介绍了Python如何使用OS模块调用 cmd,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • simple-pytest 框架使用教程

    simple-pytest 框架使用教程

    simple-pytest框架主要参考了httprunner的yaml数据驱动部分设计思路,是基于Pytest + Pytest-html+ Log + Yaml + Mysql 实现的简易版接口自动化框架,这篇文章主要介绍了simple-pytest 框架使用指南,需要的朋友可以参考下
    2024-02-02
  • Django+Xadmin构建项目的方法步骤

    Django+Xadmin构建项目的方法步骤

    这篇文章主要介绍了Django+Xadmin构建项目的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Python设计足球联赛赛程表程序的思路与简单实现示例

    Python设计足球联赛赛程表程序的思路与简单实现示例

    足球联赛的赛制就是一支队伍在一个赛季中主客场分别面对联赛中除了自身以外的球队一次,对此我们可以使用一种循环算法来实现,接下来就一起来看一下Python设计足球联赛赛程表程序的思路与简单实现示例:
    2016-06-06
  • 删除pandas中产生Unnamed:0列的操作

    删除pandas中产生Unnamed:0列的操作

    这篇文章主要介绍了删除pandas中产生Unnamed:0列的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python用模块pytz来转换时区

    Python用模块pytz来转换时区

    在Python中,与时间相关的库有好些,可以帮助我们快速的处理与时间相关的需求和问题。这里想和大家分享一下如何在Python用模块pytz来转换时区。
    2016-08-08
  • python快速入门题目详解

    python快速入门题目详解

    下面小编就为大家带来一篇快速入门python的题目详解小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-11-11

最新评论