【问题标题】:404 Not Found when using Flask and Ngrok for http://127.0.0.1:5000将 Flask 和 Ngrok 用于 http://127.0.0.1:5000 时找不到 404
【发布时间】:2020-12-05 20:01:28
【问题描述】:

flask、ngrok 和 twilio 的初学者。我运行了这段 python 代码来为 twilio 创建一个烧瓶应用程序:

from flask import Flask, request, redirect
from twilio.twiml.messaging_response import MessagingResponse

app = Flask(__name__)

@app.route("/sms", methods=['GET', 'POST'])
def incoming_sms():
    """Send a dynamic reply to an incoming text message"""
    # Get the message the user sent our Twilio number
    body = request.values.get('Body', None)

    # Start our TwiML response
    resp = MessagingResponse()

    # Determine the right reply for this message
    if body == 'hello':
        resp.message("Hi!")
    elif body == 'bye':
        resp.message("Goodbye")

    return str(resp)

if __name__ == "__main__":
    app.run(debug=True)

它托管在http://127.0.0.1:5000

然后我运行“ngrok http http://127.0.0.1:5000" 创建一个 ngrok 链接,但是当我使用它时,我得到 404 未找到。是什么导致了这个问题,我该如何解决?

更新:http://127.0.0.1:5000/sms 不起作用,显示空白页

【问题讨论】:

  • http://127.0.0.1:4040/sms 上你有什么?
  • 您是按原样尝试 ngrok 链接,还是添加 /sms?如果你没有,它应该有 404'd,因为你没有'/'的路线。
  • 我跑了代码,这次我发/sms的时候屏幕是空白的
  • 右键单击您的网络浏览器并查看源代码,输出为 Twilio Markup Language (TwiML)。
  • 嗨,当我尝试127.0.0.1:4040/sms 版本时,输出是

标签: python flask twilio http-status-code-404 ngrok


【解决方案1】:
1. Run ngrok 5000
2. Here is the flask code for generating, sending and validating OTP:

@app.route('/getOTP', methods=['GET', 'POST'])
def getOTP():
    mobNum = request.get_json().get("mobNum")
    length = len(mobNum)
    val = 0
    if length == 13 :
     val = getOTPApi(mobNum)
    elif length == '' or length < 12:
        message = "Failure"
        print(message)
        return message
         {'ContentType':'application/json'}
    if val:
          message = "Success"
          print(message)
          return message
    
    else:
        message = "NaN"
        print(message)
        return message
    

@app.route('/validateOTP', methods=['POST'])
def validateOTP():
    otp = request.get_json().get("otp")
    length = len(otp)
    if 'response' in session:
        s = session['response']
        
        if s == otp:
          message = "Success"
          print(message)
          return message
        elif length == 0 or length < 6:
          message = "NaN"
          print(message)
          return message
        else:
          message = "Failure"
          print(message)
          return message
    session.pop('response', None)  
    
    
def generateOTP():
        return random.randrange(100000, 999999)  
    
def getOTPApi(mobNum):
    account_sid = 'XXXxxXXXXXX'
    auth_token = 'XXXxxXXXXXX'
    client = Client(account_sid, auth_token)
    otp = generateOTP()
    session['response'] = str(otp)
    body = 'Your OTP is ' + str(otp)
    message = client.messages.create(
                              from_='+1123456789',
                              body=body,
                              to=mobNum
        
                                   )
    if message.sid:
        return True
    else:
        return False
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 2021-06-19
    • 2021-10-18
    • 2019-08-14
    • 1970-01-01
    相关资源
    最近更新 更多