Django如何生成二维码实现扫码浏览?

Django如何生成二维码?

网上很多教程都是依赖于QR CODE的,现在这种方法已经不好用了,byteio在django3中也删了,但是有一新的插件“django-qr-code”使用起来更加方便,今天就把方法分享一下:

步骤
1.安装依赖包

pip install django-qr-code

2.在django,你项目的settings中,安装app
打开你项目的setting,找到INSTALLED_APPS ,在这里新加一条'qr_code'
例:

INSTALLED_APPS = (
    ...,
    'qr_code',
)

3.在你打算渲染的html文档中,导入模板
首先当前模板引用标签:{% load qr_code %}
ps:如果你的html用到了继承,这句话一定要放到继承下面,比如

{% extends 'detail/base.html' %}
{% load qr_code %}

4.html页面导入一个标签
渲染出来是svg标签:

{% qr_from_text "Hello World!" size="T" %}

渲染出来是img标签:

{% qr_from_text "Hello World!" size="m" image_format="png" error_correction="L" %}

5. 二维码大小:size

{% qr_from_text 'soogor' size="10" %}
size可以直接用下面的英文字线,如
size="m"
  • t 或 T:微小(值:6)
  • s 或 S:小(值:12)
  • m 或 M:中等(值:18)
  • l 或 L:大(值:30)
  • h 或 H:巨大(值:48)

对于 PNG 图像格式,大小单位以像素为单位,而对于 SVG 格式,大小单位为 1 mm。

6.version参数

version该参数是从 1 到 40 的整数,用于控制 QR 码矩阵的大小。设置为“无”可自动确定此值。最小的版本 1 是 21 x 21 矩阵。最大的版本 40 是 177 x 177 矩阵。尺寸每侧增加 4 个模块。

通过上面这两个参数大家就可以尝试调整这两个参数来调整大小了

7。{%%20qr_url_from_text%20%}

{%%20qr_url_from_text%20"Hello World!" %}

在官方教程当中说明使用下面代码

<img src="{%%20qr_url_from_text%20"Hello World!" %}" alt="Hello World!">

可以得到一个图片链接,但是尝试当中提示”q_code“没有这个命名空间,鉴于项目的推进也没有深入研究

8。二维码颜色:

{% qr_from_text '' size="2" version=3   light_color='#7a6e6e' dark_color='ffffff'  %}

light_color:为背景颜色,颜色值可以作为元组(R, G, B),作为Web颜色名称(如“red”)或十六进制值#RRGGBB (即“#085A75”)。None为透明

dark_color:为二维码黑点的颜色,颜色值同上,None为透明

官方教程当中还批出有批模块样式:

dark_color

设置深色模块的(默认)颜色。

显示深色模块的图片 图片显示微型QR码的黑暗模块

light_color

设置光源模块的(默认)颜色。

显示发光模块的图片 显示微型QR码的光模块的图片

alignment_dark_color

设置深色对齐图案模块的颜色。

微型QR码没有对齐模式。

显示深色对齐模块的图片 显示微型QR码的深色对齐模块的图片(无)

alignment_light_color

设置灯光对齐图案模块的颜色。

微型QR码没有对齐模式。

显示灯光对准模块的图片 显示微型QR码的光对准模块的图片(无)

dark_module_color

设置深色模块的颜色。

微型QR码没有黑暗模块。

显示深色模块的图片 显示微型QR码的黑暗模块的图片(无)

data_dark_color

设置深色数据模块的颜色。

显示暗数据模块的图片 图片显示微型QR码的暗数据模块

data_light_color

设置光源数据模块的颜色。

显示发光模块的图片 显示微型QR码的光模块的图片

finder_dark_color

设置取景器图案的深色模块的颜色。

显示暗取景器模块的图片 显示微型QR码的深色取景器模块的图片

finder_light_color

设置取景器图案的光源模块的颜色。

图片显示探光仪模块 显示微型QR码的探光器模块的图片

format_dark_color

设置格式信息的深色模块的颜色。

显示深色格式信息模块的图片 图片显示微型二维码的深色格式信息模块(无)

format_light_color

设置格式信息的光源模块的颜色。

显示光格式信息模块的图片 图片显示微型二维码的光格式信息模块(无)

quiet_zone_color

设置安静区域的颜色。

显示安静区域的图片 显示微型QR码安静区域的图片

separator_color

设置分隔符的颜色。

显示分隔符的图片 显示微型QR码分隔符的图片

timing_dark_color

设置时序模式的深色模块的颜色。

显示暗时码模式模块的图片 图片显示微型QR码的暗时码模式模块

timing_light_color

设置时序图案的灯光模块的颜色。

显示光定时模式模块的图片 图片显示微型QR码的光定时模式模块

version_dark_color

设置版本信息的深色模块的颜色。

微型QR码和小于版本7的QR码不携带任何版本信息。

显示深色版本模块的图片 显示Micro QR码的深色版本模块的图片(无)

version_light_color

设置版本信息的灯光模块的颜色。

微型QR码和小于版本7的QR码不携带任何版本信息。

图片显示轻量级版本模块 图片显示微型QR码的浅色版本模块(无)

实战:Django如何实现扫码浏览?

安装模块:

pip install django-qr-code

settings.py引入app

INSTALLED_APPS = (
    ...,
    'qr_code',
)

html:

{% load qr_code %}
{% qr_from_text request.build_absolute_uri size="10" version=3 light_color="#FFFFFF"  %}
THE END