- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 arduino yun 上设置 python 和 flask。我已经设法通过/etc/config/uhttpd 配置文件运行 python 文件:
...
list interpreter ".py=/usr/bin/python"
...
网站根目录的默认路径是:/www,我在其中放置了一个指向 SD 卡的软链接(soft link)(应用程序)。所以现在我可以运行 python 程序了:http://[ip arduino]/apps/helloworld.py
当我制作我的第一个 helloflask.py 程序并通过 python helloflask.py 运行它时,我可以在以下位置看到结果:http://[ip arduino]:5000
但现在我想配置 uhttpd 迷你网络服务器(能够通过 CGI 交换信息)以使用 flask 设置。 URI:http://flask.pocoo.org/docs/deploying/cgi/#server-setup显示了一些说明......但我就是不明白。我创建了一个目录 ../apps/uno,我在其中放置了一个包含以下内容的 __init__.py 文件:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "He Flask!"
在应用程序目录中,我放了一个文件:cgi.py,内容如下:
from wsgiref.handlers import CGIHandler
from uno import app
CGIHandler().run(app)
现在我在浏览:http://[ip arduino]/cgi.py 时出现服务器错误,请联系管理员(我认为这是来自 uhttpd 的 CGI 接口(interface))。
我就是不了解Flask/uhttpd的CGI配置
最佳答案
我也对此进行了研究,并进行了更深入的研究,我能够设置一个简单的 hello world,但是一旦我尝试做一些不平凡的事情,我就遇到了一个大问题,即 uhttpd 不支持 URL 重写/别名。这意味着您的 Flask 应用程序只能在其 .py 文件的 URL 处提供服务,而不是在像 http://(arduino IP)/flaskapp/这样的根目录下提供。应用内的所有路由都将不可见,并使整个应用无法使用。
然而,我并没有试图强制 flask 进入 uhttpd,而是成功地运行了 flask 提供的内置服务器。看看我写的这篇指南,它使用 Flask 来提供来自 Yun 的数据:https://learn.adafruit.com/smart-measuring-cup/overview
要做的事情是在脚本运行时添加对 app.run 的调用,例如让你的 flask 应用程序看起来像:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Flask!"
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True, threaded=True)
然后登录Yun,使用python运行脚本。 Flask 的内置服务器应该开始在 http://(arduino IP) :5000/上为应用程序提供服务。确保包含 host='0.0.0.0' 因为需要在 Yun 的外部网络接口(interface)上进行监听。您可能还需要 debug=True 以便有更好的错误消息(以及在代码更改时实时重新加载服务器),我发现 threaded=True 有帮助,因为默认服务器一次只处理一个连接。 Yun 是一个相对较慢的处理器,因此不要指望为大量并发请求提供服务,但它非常有能力为少数用户提供简单的 REST API 或 Web 应用程序。
如果您希望此服务器始终在启动时运行,请编辑/etc/rc.local 文件以包含对 python 和您的脚本的调用。
关于python - arduino yun uhttpd flask 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791209/
我正在尝试在 arduino yun 上设置 python 和 flask。我已经设法通过/etc/config/uhttpd 配置文件运行 python 文件: ... list interpret
我是一名优秀的程序员,十分优秀!