flask + ngrok - 重定向不起作用
flask + ngrok - redirect doesn't work
我有以下应用程序:
server.py
@app.route('/')
def main():
return render_template('index.html')
@app.route('/login')
def login():
return 'hey'
index.html
<body>
<form action="http://localhost:5000/login" , method="post">
<input type="submit" value="submit">
</body>
现在我 运行 ngrok:
ngrok http 5000
在网络浏览器中输入地址(由 ngrok 生成)后,我可以看到带有按钮的 index.html 页面,但是当我按下按钮时,它会将我重定向到 http://localhost:5000/login,在那里我可以看到:"connection refused"。
我的问题是如何设置 ngrok 和 flask 服务器的通信方式?
P.S。为了更好的阅读,我只放了一部分代码
如果将 POST
方法添加到登录路由会发生什么情况
@app.route('/login', methods=['POST'])
def login():
return 'hey'
并将表单操作更改为
<body>
<form action="/login", method="post">
<input type="submit" value="submit">
</body>
嗯?
尝试更改您的应用程序主机。
app.run(host='0.0.0.0')
然后 运行 命令 ngrok http 5000
还为您的路线添加 POST
方法。
@app.route('/login', methods=['POST'])
def login():
return 'hey'
顺便说一句,我已经想出了其他方法。在 运行 命令之后:
ngrok http 5000
感谢这个 python 脚本,我得到了 ngrok 地址:
import json
import os
def get_ngrok_address():
os.system("curl http://localhost:4040/api/tunnels > tunnels.json")
with open('tunnels.json') as data_file:
datajson = json.load(data_file)
return dict(zip(['http', 'https'], [i['public_url'] for i in datajson['tunnels']]))
它只是获取 json 对象并将其转换为 python dict:
'http' -> ngrok_http_address
'https' -> ngrok_https_address
在服务器启动之前,我将生成的地址传递给所有 html 模板 e.x.:
<body>
<form action="{{ ngrok_address }}/login", method="post">
<input type="submit" value="submit">
</body>
尝试 Flask-PyNgrok 使用 ngrok 作为 Flask 应用程序扩展。
我有以下应用程序:
server.py
@app.route('/')
def main():
return render_template('index.html')
@app.route('/login')
def login():
return 'hey'
index.html
<body>
<form action="http://localhost:5000/login" , method="post">
<input type="submit" value="submit">
</body>
现在我 运行 ngrok:
ngrok http 5000
在网络浏览器中输入地址(由 ngrok 生成)后,我可以看到带有按钮的 index.html 页面,但是当我按下按钮时,它会将我重定向到 http://localhost:5000/login,在那里我可以看到:"connection refused"。 我的问题是如何设置 ngrok 和 flask 服务器的通信方式?
P.S。为了更好的阅读,我只放了一部分代码
如果将 POST
方法添加到登录路由会发生什么情况
@app.route('/login', methods=['POST'])
def login():
return 'hey'
并将表单操作更改为
<body>
<form action="/login", method="post">
<input type="submit" value="submit">
</body>
嗯?
尝试更改您的应用程序主机。
app.run(host='0.0.0.0')
然后 运行 命令 ngrok http 5000
还为您的路线添加 POST
方法。
@app.route('/login', methods=['POST'])
def login():
return 'hey'
顺便说一句,我已经想出了其他方法。在 运行 命令之后:
ngrok http 5000
感谢这个 python 脚本,我得到了 ngrok 地址:
import json
import os
def get_ngrok_address():
os.system("curl http://localhost:4040/api/tunnels > tunnels.json")
with open('tunnels.json') as data_file:
datajson = json.load(data_file)
return dict(zip(['http', 'https'], [i['public_url'] for i in datajson['tunnels']]))
它只是获取 json 对象并将其转换为 python dict:
'http' -> ngrok_http_address
'https' -> ngrok_https_address
在服务器启动之前,我将生成的地址传递给所有 html 模板 e.x.:
<body>
<form action="{{ ngrok_address }}/login", method="post">
<input type="submit" value="submit">
</body>
尝试 Flask-PyNgrok 使用 ngrok 作为 Flask 应用程序扩展。