使用重定向到特定端点的二维码创建 Flask 应用程序

问题描述 投票:0回答:1

如标题所示,我正在创建一个 Flask 应用程序,其中包含重定向到特定端点的二维码。当我手动访问端点时,它可以工作,但是当我扫描二维码时,它不会重定向到正确的位置。

from flask import Flask, request, redirect
import logging
from datetime import datetime
import qrcode

app = Flask(__name__)

logging.basicConfig(filename = 'device_info.log', level = logging.INFO)

@app.route('/redirect')
def redirect_to_youtube():
    device_info = {
        "timestamp": datetime.now().isoformat(),
        "ip_address": request.remote_addr,
        "user_agent": request.headers.get('User-Agent'),
    }

    logging.info(device_info)

    return redirect("https://www.youtube.com", code=302)

server_url = "http://127.0.0.1:5000/redirect"

qr = qrcode.QRCode(
    version = 1,
    error_correction = qrcode.constants.ERROR_CORRECT_L,
    box_size = 10,
    border = 4,
)

qr.add_data(server_url)
qr.make(fit = True)

img = qr.make_image(fill_color="black", back_color="white")

file_name = "redirect_qr_code.png"
img.save(file_name)

我检查了 Flask 服务器是否正在运行,手动测试了端点,它可以工作。我还重新生成了二维码以确保它指向正确的 URL,但它仍然无法正确重定向。

Flask 服务器输出表明它正在 localhost:5000 上运行,但是当我扫描二维码时,它没有按预期重定向。我在控制台中没有看到任何错误消息。

python flask qr-code
1个回答
0
投票

根据我们的信件,您正在使用外部 iPhone 来扫描二维码。

iPhone 的 IP 地址与您的 PC 地址不同,因此当您尝试访问

127.0.0.1
时,您正在尝试访问您的 iPhone IP,该 IP 并未托管服务器。

仅针对 POC,您可以尝试将服务器 URL 切换为如下所示:https://whatismyipaddress.com/。这是您的公共 IP 地址,可以从 iPhone 等外部设备访问。

© www.soinside.com 2019 - 2024. All rights reserved.