python - Flask 无法识别 heroku 上的 POST 方法
问题描述
我试图发出一个帖子请求,但我收到错误 405:不允许的方法。
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/register', methods=['POST'])
def register_user():
user_info = request.get_json()
if request.method == 'POST':
user = User.query.filter_by(username = user_info['username']).first()
if user is not None:
return jsonify({"msg":"User already exists!"}), 404
saved_user = User(username=user_info['username'], password=user_info['password'])
db.session.add(saved_user)
db.session.commit()
return ""
return "", 200
这是我的要求:
r = requests.post('https://myapp.herokuapp.com/register',json = {'username':'testname','password':'testpsw'})
assert r.status_code == 200
如果我把它改成它
methods = ['GET', 'POST']
只是一个得到。
解决方案
更改以下行,
r = requests.post('https://myapp.herokuapp.com/register',json{'username':'testname','password':'testpsw'})
对此,
r = requests.post('http://localhost:5000/register', json = {'username':'testname','password':'testpsw'})
您需要将对象分配给 requests.post 函数的第二个参数“json”,请求才能工作。
推荐阅读
- python - 用python在html上提取
- php - 创建工厂类?
- javascript - 在 React.JS 属性定义中定义复杂的数据结构类型
- bash - 在 bash/shell 脚本中将所有 '/' 替换为 '\/'
- sql - 在 SQL Server 中结合 select 和 select union
- svn - 用于热拷贝的 Subversion (SVN) 日志命令
- pyspark - 从 PySpark UDF 更新全局字典中的值
- android - 从 onDataChange 获取数据
- performance - 单个工作流中的单个与多个数据库连接性能
- java - 为什么我在不使用时会收到 SLF4J 错误?