【发布时间】:2016-06-17 01:23:47
【问题描述】:
我正在使用 Flask 制作我的第一个网络应用程序,其中基于所选成分在前端显示饮料数据库。然后用户选择一种饮料,然后出现一个页面内弹出窗口,其中包含一些饮料信息和一个按钮“make”,当用户点击“make”时,它会在后端(Flask)调用一些 python 代码来控制我的 GPIO树莓派来控制一些泵。
这个“make”是否需要调用一些路由(例如/make/<drink>)才能调用后端的python函数?我不喜欢任何用户只需输入 URL (example.com/make/<drink>) 的想法,即使没有加载正确的成分,数据库中的某些内容也会强制机器制作饮料。即使我确实检查了后端以确保已加载用户选择的成分,我希望用户必须使用界面而不是仅仅输入 URL。
有没有办法让make按钮调用python代码而不使用“虚拟URL”将按钮路由到服务器?
【问题讨论】:
-
如果我理解正确,那么是的,您需要 Flask 中的路由以使服务器接受客户端操作。我不太明白您所说的“虚拟 URL”是什么意思,但并非所有功能都需要路由,如果这就是您所说的
-
我不是在问是否所有的函数都需要一个路由,只是那些被前端按钮调用的函数。 “虚拟 URL”是指
/make/<drink>不是显示内容的 URL。它只用于调用饮料制作代码,然后可能重定向用户。我不希望用户能够只输入 URL 来制作饮料,我希望他们通过网络应用程序。 -
明白了。所以,你在问一个安全问题。唯一想到的是在 POST 数据中为 CSRF token 隐藏一个字段@
-
嗯,有趣。所以没有任何方法可以从前端调用 python 代码而不需要路由 URL?
-
不应该。前端都是 HTML/CSS/JS,那里没有加载/可用的 python。