将二维码识别连接到 django 数据库

Interfacing a QR code recognition to a django database

我来找你有以下问题:

我有一堆物理盒子,我仍然在上面贴上使用名为 qrcode 的 python 模块生成的二维码。简而言之,我想做的是,每次有人要拿一个盒子里的东西,他用phone扫描二维码,然后拿走,拿完放回去,不要忘记再次扫描二维码。

很简单,不是吗? 我已经有一个包含我所有对象的 Django table。

现在我的问题与设计有关。我怀疑实现这一目标的最简单方法是在 QR 码中有一个 POST 请求 link,这将在 table 中创建一个新条目,其中包含已选择的对象的名称或放回时间(我想存储此信息)。

如果这是正确的做法,您会如何处理?我不太确定我知道如何使用 QR 码发出 POST 请求。你有什么想法吗?

谢谢。

PS:我能想到的另一种选择是将 QR 码中的 link 转换为带有用户单击的虚拟按钮的表单。单击该按钮后将更新数据库。但我希望没有任何按钮更方便的解决方案...

如果安全不是一个大问题:一个 API 带有一个简单的 get 方法,该方法将 object id 作为参数,我假设您有代码来确保 object 照原样给出,它将被切换为返回。 为什么不 post? POST 需要 headers,除非你有专门的应用程序,否则你不能将其包含在 qr 中,因此 GET 和使用示例的能力。com/api/leaseandret?id=12345 是一个更好的选择,它允许为了更好地使用二维码。
A summary of the methods*
* 这里需要注意的是,GET 不被禁止用于修改数据和向服务器发送数据 GET 专门用于从 REST 纯粹主义者的角度获取数据。

这个问题归结为几个选择:(a)你想把什么数据编码到二维码中; (b) 您将使用什么应用程序扫描二维码; (c) 您希望应用如何使用/响应编码数据。

如果您希望您的用户使用现成的 QR 码 readers(如免费的智能手机应用程序),则将完整的 URL 编码为适当的 API你的后端是有道理的。这应该是 GET 还是 POST 取决于 QR 码 reader。我希望大多数人使用 GET,但您应该为您选择的应用程序验证这一点。如果您不担心谁应该能够扫描代码,那在功能上应该没问题。

如果你想要更多的控制,例如您希望仅通过静态 URL 请求跟踪谁扫描了代码或服务器端不可用的其他信息,您需要一种不同的方法。比如,在二维码中存储商品 ID(不是 URL);创建您自己的简单 QR 码扫描器应用程序(存在许多很好的示例)并向该客户端添加一些额外的逻辑,例如要求用户使用 ID + 密码登录,并根据项目 ID 动态构建 URL和用户 ID。许多可能的安全变体(如 JWT 令牌)——你如何做到这一点不会由 QR 码的内容决定。您可以在该 QR 码扫描仪/客户端中做很多其他事情,例如添加 GPS 位置、要求用户说明他们拿走物品的原因或地点等。

因此,您可以在没有控件的简单方法和更复杂的方法之间进行选择,后者允许您在任何其他控件和所需的额外数据中分层。