Flask应用POST请求出现405 Method Not Allowed错误求助
解决Flask短信群发应用提交表单时的405 Method Not Allowed错误
问题根源
你用VS Code的Live Server扩展运行Flask应用是核心错误——Live Server仅用于托管静态HTML文件,无法处理Flask的动态路由和POST请求。当表单提交到/send_sms时,Live Server无法识别这个Flask定义的路由,直接返回405错误。
正确解决方案
1. 使用Flask官方开发服务器启动应用
Live Server不支持WSGI协议(Flask依赖的服务器规范),必须用Flask自带的开发服务器运行:
- 确保已安装依赖:
pip install flask twilio - 在项目根目录下,设置Flask环境变量并启动服务器:
- Windows:
set FLASK_APP=app.py flask run - Linux/macOS:
export FLASK_APP=app.py flask run - 或者在
app.py末尾添加启动代码,直接运行python app.py:if __name__ == '__main__': app.run(debug=True)
- Windows:
2. 修正代码依赖(确保必要模块导入)
检查app.py开头是否包含以下导入,否则会导致运行错误:
from flask import Flask, request, redirect, url_for, render_template from twilio.rest import Client app = Flask(__name__) # 替换为你的Twilio账号信息 account_sid = 'your_account_sid' auth_token = 'your_auth_token' client = Client(account_sid, auth_token)
3. 验证访问路径
启动Flask服务器后,访问http://localhost:5000(默认端口),而不是Live Server的端口(通常是5500)。此时表单提交会被Flask的/send_sms路由正确处理。
为什么之前的方案无效
你尝试的web.config配置、修改路由方法等操作,都是针对IIS或Flask路由本身的调整,但问题本质是用错了服务器——Live Server无法解析Flask的动态路由规则,所以这些调整无法解决405错误。
内容的提问来源于stack exchange,提问作者peekay
相关产品推荐
相关产品推荐

