将 Flask 和 Ngrok 用于 http://127.0.0.1:5000 时找不到 404
Posted
技术标签:
【中文标题】将 Flask 和 Ngrok 用于 http://127.0.0.1:5000 时找不到 404【英文标题】:404 Not Found when using Flask and Ngrok for http://127.0.0.1:5000 【发布时间】: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 版本时,输出是 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
【讨论】:
以上是关于将 Flask 和 Ngrok 用于 http://127.0.0.1:5000 时找不到 404的主要内容,如果未能解决你的问题,请参考以下文章
Alexa Skill Development 使用 flask-ask 和 ngrok 错误
我可以获取flask_ngrok或py-ngrok生成的ip地址或域名并返回到127.0.0.1/
在 Google Colab 上通过 ngrok 运行烧瓶应用程序时,flask-ngrok 返回“隧道 _________.ngrok.io 未找到”[重复]