JSON类型d的Python上的restapi

2024-05-19 02:14:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试理解如何使用Python(Flask)创建一个REST API,它允许用户通过浏览给定的url获得一组JSON格式的数据:本地主机:5000/DPM。我编写了以下Python脚本,但收到的错误如下:

File "mysql.py", line 23, in api.add_resource(DPM, '/DPM') File "C:\Program Files\Anaconda3\lib\site-packages\flask_restful__init__.py", line 404, in add_resource self._register_view(self.app, resource, *urls, **kwargs) File "C:\Program Files\Anaconda3\lib\site-packages\flask_restful__init__.py", line 444, in _register_view resource_func = self.output(resource.as_view(endpoint, *resource_class_args, AttributeError: type object 'DPM' has no attribute 'as_view'

from flask import Flask
from flask_restful import Resource, Api
from sqlalchemy import create_engine
import json

app = Flask(__name__)
api = Api(app)

class DPM:
    def __init__(self, time, month):
       self.time = time
       self.month = month
energy = DPM('[12.18]','11')

def jdefault(o):
    return o.__dict__
print(json.dumps(energy, default=jdefault, indent=4))

api.add_resource(DPM, '/DPM')

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

我哪里做错了?在


Tags: inpyimportselfviewaddapirestful
2条回答

要向API公开的类必须从资源继承,该类实现基本方法,例如允许您呈现输出的as_视图。然后必须实现一些方法,例如GET:

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class DPM(Resource):
    def __init__(self):
       self.time = '[12.18]'
       self.month = "11"
    def get(self):
        return self.__dict__

api.add_resource(DPM, '/DPM')

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

我假设您安装了所需的软件包(flask_restful,jsonify,)

class DPM(Resource):
    def get(self):
        cur = mysql.connection.cursor()
        result = cur.execute('your sql command here')
        list= cur.fetchall()
        mysql.connection.commit()
        cur.close()
        rest_list = jsonify(list)
        return  rest_list

api.add_resource(DPM, '/dpm')

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

这是针对没有orm和flask\u restful的mysql

You can find full http methods on flask rest here

相关问题 更多 >

    热门问题