我是 python 和 flask 的新手,我遇到了 Flask 的问题。我正在尝试使用本地 HTTP POST (webhook) 从另一个文件调用函数,但是当我执行任何操作时什么都没有发生。
from flask import Flask
from BotSpeak import main
app = Flask(__name__)
@app.route('/', methods=['POST'])
def respond():
main('hello')
if __name__ == '__main__':
app.run()
这是我非常基本的 Flask 应用程序。如您所见,它正在尝试从此文件(BotSpeak)调用主函数:
from json import dumps
from httplib2 import Http
def main(botmsg):
url = 'PLACEHOLDER FOR GOOGLE CHAT WEBHOOK URL'
bot_message = {
'text' : botmsg}
message_headers = {'Content-Type': 'application/json; charset=UTF-8'}
http_obj = Http()
response = http_obj.request(
uri=url,
method='post',
headers=message_headers,
body=dumps(bot_message),
)
print(response)
if __name__ == '__main__':
main("TEST MESSAGE")
这是将本地 HTTP POST 发送到我的烧瓶应用程序的代码:
import json
import requests
webhook_url ='http://127.0.0.1:5000/'
data = {PLACE HOLDER FOR JSON DATA}
r = requests.post(webhook_url, data=json.dumps(data), headers={'Content-Type': 'application/json'})
我可以从烧瓶应用程序之外的其他文件调用主函数,它会工作,但它不会像它应该那样在 app.route 装饰器中触发。我非常感谢任何人的帮助,我鼓励您将这些投入到 VS Code 中并亲自尝试。