正如标题所说,我正在创建一个带有二维码的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服务器输出表明它正在本地主机:5000上运行,但当我扫描二维码时,它没有像预期的那样重定向.我在控制台中没有看到任何错误消息.

推荐答案

您需要在这里做两件事.

首先,由于您使用iPhone扫描二维码,因此您的iPhone和笔记本电脑必须位于同一网络中.要访问笔记本电脑上运行的服务器,您需要在iPhone浏览器中输入笔记本电脑的IP地址.

使用127.0.0.1行不通.因为它是一个收件箱地址,它只是指向您试图访问的设备.

因此,要查找笔记本电脑的IP地址,只需在命令行中运行ipconfig并查找IPv4 Address,类似于192.168.xx.xxx.将此IP写入您的server_url变量中.

最后,您必须确保您的flottle服务器是公开的.对于这次运行flask run --host=0.0.0.0.这样,您的服务器将监听所有公共IP.

Python相关问答推荐

螺旋桨图上意外颠倒的次y轴

如果在第一行之前不存在其他条件,如何获得满足口罩条件的第一行?

使用unmanagedexports从Python调用的c#DLC

Tkinter -控制调色板的位置

inspect_asm不给出输出

Image Font生成带有条形码Code 128的条形码时出现枕头错误OSErsor:无法打开资源

使用polars .滤镜进行切片速度比pandas .loc慢

Pythind 11无法弄清楚如何访问tuple元素

线性模型PanelOLS和statmodels OLS之间的区别

使用mySQL的SQlalchemy过滤重叠时间段

使用numpy提取数据块

在Python中处理大量CSV文件中的数据

删除所有列值,但判断是否存在任何二元组

修复mypy错误-赋值中的类型不兼容(表达式具有类型xxx,变量具有类型yyy)

为什么抓取的HTML与浏览器判断的元素不同?

使用NeuralProphet绘制置信区间时出错

Pandas GroupBy可以分成两个盒子吗?

如何在Python中获取`Genericums`超级类型?

如何禁用FastAPI应用程序的Swagger UI autodoc中的application/json?

Matplotlib中的字体权重