Django生成二维码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42567323/article/details/102615248
前言

    Django 的学习已经有一段时间了,这段时间一直在学习Django的基础知识,今天终于是学完了(虽然很多地方听不懂).当然了,还是需要不断的练习才能更好的掌握,学习就是如此嘛.那接下来就用Django做一个简单的小实例-----生成一个二维码.

一.python生成二维码

    对于python来说,二维码的生成是用qrcode这个包来完成的,所以我们要先下载这个包:

pip install qrcode

    下载好后,我们先用python来实现一个简单的二维码:

import qrcode

data = '人生苦短,我用python'
image = qrcode.make(data)

with open('image/test.png','wb') as f:
    image.save(f)

    其中:

  • data是你想要的生成二维码的内容;
  • image.make(data)是生成一个qrcode对象;
  • iamge.save(f)是将iamge保存在f中,并且是以.png图片形式保存;
  • 生成的二维码如下:
    在这里插入图片描述    可以用手机扫一扫,里面的内容正是"人生苦短,我用python".

    接下来就利用Django在浏览器中将二维码展示出来:

二.Django中生成二维码

第一步:创建项目,app,配置项目:
(这一步就不介绍了,相信大家都会.)
(项目名称叫:zqxtqrcode,app名称叫tools)
第二步:配置url:
urls.py

"""zqxtqrcode URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls.conf import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('tools/', include('tools.url')),
]

tools/url.py:

from django.urls import path,re_path
from tools import views

urlpatterns = [
    path('qrcode/',views.generate_qrcode)
]

第三步:写视图函数:
views.py:

from django.shortcuts import render,HttpResponse,redirect
from django.utils.six import BytesIO
import qrcode

# Create your views here.

def index(request):
    return HttpResponse('ok')


def generate_qrcode(request):
    data = '我爱python'
    img = qrcode.make(data)

    buf = BytesIO()		# BytesIO实现了在内存中读写bytes
    img.save(buf)
    image_stream = buf.getvalue()

    response = HttpResponse(image_stream, content_type="image/png")
    return response

    其中:

  • img = qrcode.make(data)就是将内容生成一个qrcode对象,当然了,这个data也可以从其他地方传进来;
  • BytesIO():实现了在内存中读写bytes;
  • buf.getvalue():从内存中获取数据.

第四步:运行项目,打开浏览器:
在这里插入图片描述

    这样,一个最简单的二维码就生成了!!

写在最后

    本文是个人的一些学习笔记,如有侵权,请及时联系我进行删除,谢谢大家.

猜你喜欢

转载自blog.csdn.net/weixin_42567323/article/details/102615248