提问者:小点点

如何在不使用return语句的情况下获取函数中变量的值?[副本]


我使用twilio api接收和发送使用python和烧瓶框架的Whatsapp消息。问题是当我发送消息时,它将内容存储在一个变量中,该变量在函数中声明,我想要函数之外的变量值,但它只返回消息的响应。我的目标是获取传入消息的值,在该值的基础上运行一些代码,并再次用whatsapp消息响应用户。

我已经尝试声明全局属性,并尝试使用嵌套函数回调变量的值,还尝试将新变量声明为与get(函数中的orignal_variable)msg=request相同的值。类型get('Body')和message=request。类型get('Body')(在函数外部),但它给出了RuntimeError:在请求上下文之外工作。

app = Flask(__name__)

@app.route("/sms", methods=['POST'])
def sms_reply():
    msg = request.form.get('Body')
    resp = MessagingResponse()
    resp.message("Hello")
    return str(resp)

我希望根据传入whatsapp消息的值运行更多的代码。


共1个答案

匿名用户

如果要返回包含消息响应的消息,则需要创建包含这两个值的更复杂类型,然后返回该对象。

from flask import jsonify
app = Flask(__name__)

class SmsReplyResult:
  def __init__(self, msg, other_data):
    self.msg = msg
    self.other_data = other_data

@app.route("/sms", methods=['POST'])
def sms_reply():
    msg = request.form.get('Body')
    result = SmsReplyResult(msg, "hello")
    return jsonify(result)

本例假设调用方希望json作为响应