0

提前道歉,因为这可能是在这里找到的最基本的问题,但我是最环保的新手,无法理解如何在烧瓶中调用函数,因此当我登陆 URL 时它会运行。

我的目的是尝试在从 WebCore 向 URL 发出 GET 请求时运行 python 脚本(对于那些不知道它是一个允许您为 SmartThings 编写智能家居功能的程序的人)或者当我只是登陆时在网址。然后,我将把它连接到一个虚拟开关,该开关将启动控制猫喂食器中电机的代码,这样我就可以远程/通过语音喂养我的猫。

所有非常无聊的东西,但试图在这里学习一些基础知识,有人可以帮忙吗?

就目前而言,我有两个文件,都位于名为“CatFeeder”的根目录中

喂食器.py

from flask import Flask
from feed import start

app = Flask(__name__)

@app.route('/')
def feed()
    return feed.start

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='5000', debug=True)

饲料.py

import time
import RPi.GPIO as GPIO

def start():
    # Next we setup the pins for use!
    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)

    Motor1Forward = 17
    Motor1Backwards = 18

    GPIO.setup(Motor1Forward,GPIO.OUT)
    GPIO.setup(Motor1Backwards,GPIO.OUT)

    print('Feeding Lola')

    # Makes the motor spin forward for x seconds 
    # James Well Beloved - 11 seconds = 28g food (RDA Portion = 52g/4kg cat or 61g/5kg cat)
    # XXXX - X seconds - Xg food

    GPIO.output(Motor1Forward, True)
    GPIO.output(Motor1Backwards, False)
    time.sleep(11)

    print('Lola Fed!')

    GPIO.output(Motor1Forward, False)
    GPIO.output(Motor1Backwards, False)

    GPIO.cleanup()

    quit()

当我设置export FLASK_APP=catfeeder.py然后flask run服务运行但当我登陆页面时没有任何反应。我认为我称呼事物的方式有问题。

我想如果我只是将 feed.py 中的代码集成到 catfeeder.py 中,那将是最简单的,但我不确定它的语法是什么,而且感觉像是一种混乱的方式。

提前致谢!

4

1 回答 1

0

您已经导入了该函数,但实际上并没有调用它,因为您错过了添加括号(),请尝试return start()

如果您打算返回一个函数对象而不是调用该函数,您应该通过键入返回它return start

于 2020-05-18T15:53:25.243 回答