gpt4 book ai didi

python - Flask Web 服务器上出现内部服务器错误

转载 作者:行者123 更新时间:2023-12-01 04:00:02 25 4
gpt4 key购买 nike

我是树莓派和Python编码的新手。我正在做一个学校项目。我已经寻找了一些教程和示例,但也许我遗漏了一些东西。我想构建一个基于 GPIO Controller 的网络服务器。我为此使用 flask 。为了深入探讨这一点,我从这个例子开始。只需刷新页面即可打开和关闭 LED。

所以问题是,我看不到网络服务器端的响应值。它正在打开和关闭 LED。但我想在网上看看情况。但我就是做不到。我收到内部服务器错误。我给出了 python 和 html 代码。你能帮我解决这个问题吗?

from flask import Flask
from flask import render_template
import RPi.GPIO as GPIO

app=Flask(__name__)

GPIO.setmode(GPIO.BCM)

GPIO.setup(4, GPIO.OUT)
GPIO.output(4,1)
status=GPIO.HIGH

@app.route('/')
def readPin():
global status
global response
try:
if status==GPIO.LOW:
status=GPIO.HIGH
print('ON')
response="Pin is high"
else:
status=GPIO.LOW
print('OFF')
response="Pin is low"
except:
response="Error reading pin"

GPIO.output(4, status)

templateData= {
'title' : 'Status of Pin' + status,
'response' : response
}

return render_template('pin.html', **templateData)

if __name__=="__main__":
app.run('192.168.2.5')

基本上,我的 html 页面上就只有这一行。

<h1>{{response}}</h1> 

我认为“响应”没有值(value)。这有什么问题吗?

最佳答案

首先,它有助于在 Debug模式下运行它:

app.run(debug=True)

这将帮助您追踪任何被抑制的错误。

接下来看看构建标题字符串的行:

'title' : 'Pin 状态' + 状态

如果启用 Debug模式,那么您应该会看到一些信息,表明 int/bool 无法隐式转换为 str。 (Python 不知道如何添加字符串和 int/bool)。

为了解决此问题,您应该将状态显式转换为字符串:

'title' : 'Pin 状态' + str(status)

或者更好:

'title' : 'Pin 状态:{}'.format(status)

关于python - Flask Web 服务器上出现内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com