方法一:

1.安装包

pip install django-qr-code

2.在django项目的settings.py中,安装app

打开项目的settings.py,找到INSTALLED_APPS ,在这里增加一条'qr_code'

INSTALLED_APPS = [
    ...,
    'rest_framework',
    'qr_code',
    ...
]

3.在渲染的html文件中,导入模板

{% load qr_code %}
ps:如果html用到了继承,这句话一定要放到继承下面

{% extends '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.效果

方法2:

无须安装django-qr-code 包

在你的views.py中创建一个生成二维码的视图:

# myapp/views.py
import qrcode
from io import BytesIO
from django.http import HttpResponse
from django.shortcuts import render

def generate_qr_code(request):
    # 要生成二维码的数据
    data = "https://www.baidu.com"
    
    # 生成二维码
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    qr.add_data(data)
    qr.make(fit=True)

    # 创建图像
    img = qr.make_image(fill_color="black", back_color="white")

    # 将图像保存到内存中
    buffer = BytesIO()
    img.save(buffer, format="PNG")
    buffer.seek(0)

    # 返回二维码图像
    return HttpResponse(buffer, content_type="image/png")

设置 URL 路由

在你的urls.py中配置相应的路由:

# myproject/urls.py
from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('qr_code/', views.generate_qr_code, name='qr_code'),
]

在模板中显示二维码

创建一个模板,在其中显示二维码:

<!-- myapp/templates/myapp/show_qr_code.html -->
<!DOCTYPE html>
<html>
<head>
    <title>QR Code</title>
</head>
<body>
    <h1>Your QR Code:</h1>
    <img src="{% url 'qr_code' %}" alt="QR Code">
</body>
</html>

然后在视图中渲染这个模板:

# myapp/views.py
from django.shortcuts import render

def show_qr_code(request):
    return render(request, 'myapp/show_qr_code.html')

设置模板 URL

在你的urls.py中添加模板视图的路由:

# myproject/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('qr_code/', views.generate_qr_code, name='qr_code'),
    path('show_qr_code/', views.show_qr_code, name='show_qr_code'),
]

本文关键词:
1. "Django生成网页二维码的两种实现方法"
2. "在Django网页中创建二维码的两种方式"
3. "两种简单方法:在Django网站中添加二维码功能"
4. "Django项目集成二维码的两种实用方案"
5. "如何在Django网页上显示二维码?两种常用方法"

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。