返回

Flask 上的路由执行错误:“缺少 1 个必需的位置参数” - Google Cloud Function

发布时间:2022-08-17 13:46:30 345
# node.js

开发一个简单的功能,部署在谷歌云功能中,一个细节已经出现。使用参数时request作为函数的参数,代码不是在本地执行,而是在cloud env中执行。不使用时request作为一个参数,该代码在本地运行良好,但在云环境中崩溃。

  • def hello_http(request):本地不工作/在云中工作良好
  • def hello_http():在本地工作正常/在云中不工作

本地运行的当前状态:

import firebase_admin
from firebase_admin import auth
import flask
from flask import Flask
from flask import request
from flask_cors import CORS

app = Flask(__name__)
CORS(app)
firebase_admin.initialize_app()

    @app.route('/hello_http', methods=['GET'])
    def hello_http(request):
        if 'token' in request.args:
            uid = validate(request)
            if uid == False:
                return 401
            else:            
                response = flask.jsonify({'UID': uid})
                print('Headers: ' + str(response.headers))
                print('UID: ' + str(uid))
                return response
        else:
            return 'bad request!', 400

输出:

[2022-07-04 21:13:00,234] ERROR in app: Exception on /hello_http [GET]
Traceback (most recent call last):
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask_cors/extension.py", line 165, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/agstcadini/opt/anaconda3/lib/python3.9/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
TypeError: hello_http() missing 1 required positional argument: 'request'
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像