【问题标题】:AssertionError: Unimplemented method 'GET' - API FLASKAssertionError:未实现的方法 'GET' - API FLASK
【发布时间】:2020-03-30 20:49:28
【问题描述】:

我正在尝试创建一个简单的 API 以使用表中的数据返回 JSON 中的 GET,其中数据库是 pgsql,但是当我执行 CURL 时出现错误 500

flask.py

from flask import Flask, request, jsonify
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
import psycopg2

db_connect = create_engine('postgresql+psycopg2://postgres:postgres@localhost/dbname')
app = Flask(__name__)
api = Api(app)

class ApiZabbix(Resource):
    def getMemory(self):
        try:
            conn = db_connect.connect()
            query = conn.execute("select * from \"TBLNAME\"")
            result = [dict(zip(tuple(query.keys()), i)) for i in query.cursor]
            return jsonify(result)
        except Exception as e:
            print("[ALERT] Error caused by: {}".format(e))

api.add_resource(ApiZabbix, '/apizb')

if __name__ == '__main__':
    app.run()

卷曲

curl localhost:5000/apizb

输出

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.7/dist-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.7/dist-packages/flask_restful/__init__.py", line 468, in wrapper
    resp = resource(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/flask/views.py", line 89, in view
    return self.dispatch_request(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/flask_restful/__init__.py", line 573, in dispatch_request
    assert meth is not None, 'Unimplemented method %r' % request.method
AssertionError: Unimplemented method 'GET'

【问题讨论】:

    标签: python postgresql flask flask-restful


    【解决方案1】:

    AssertionError: 未实现的方法 'GET'

    这意味着您的 ApiZabbix 类需要一个 get 方法。因此,不要调用该方法 getMemory 将其重命名为 get

    class ApiZabbix(Resource):
       def get(self):
           # Rest of code
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多