python - AssertionError:未实现的方法 'GET' - API FLASK
问题描述
我正在尝试创建一个简单的 API 以使用表中的数据返回 JSON 中的 GET,其中数据库是 pgsql,但是当我执行 CURL 时出现错误 500
烧瓶.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'
解决方案
AssertionError:未实现的方法“GET”
这意味着你的ApiZabbix
类需要一个get
方法。因此,与其调用该方法,getMemory
不如将其重命名为get
:
class ApiZabbix(Resource):
def get(self):
# Rest of code
推荐阅读
- python - 当应用程序部署在 AWS Beanstalk 上时,Flask catch-all 端点不再工作
- sql - 如何使用 REGEXP-SUBSTR
- ios - 快速从对象数组中删除某些对象
- c# - 如果在 UserControl 上使用 DataTemplate,WPF DependencyProperty OnPropertyChanged 将默认值返回为 NewValue
- apache-kafka - 提交偏移量时,kafka 流会超时
- php - 我已经使用 php 将 csv 导入到表中,但遇到了问题?
- amazon-web-services - 如何在不传递应用程序中的访问密钥和密钥的情况下访问 aws QLDB?
- java - 在 Spring Boot 应用程序中从 mongo db 获取数据,其中要获取的集合名称和字段在运行时是已知的
- c# - NHibernate 多对一映射
- android - 如何在改造标头android中传递String []?