Python 带HTTP Post的Flask RESTful API问题

Python 带HTTP Post的Flask RESTful API问题,python,flask,sqlalchemy,flask-restful,Python,Flask,Sqlalchemy,Flask Restful,我有一个非常简单的Flask RESTful API,它是根据Packt书籍《Python API开发基础》构建的。我可以成功地从数据库获取数据,但发布数据时遇到问题 我正在使用Flask、SQLAlchemy和Flask_restful,以及Microsoft Server Management Studio本地数据库 我当前在尝试向Users表中插入条目时出错。用户只是一个ID、姓名、年龄。以下是您可以在此处找到的书籍示例: 如果你看一下这个例子,你会发现他们用于get方法的示例代码对我也不

我有一个非常简单的Flask RESTful API,它是根据Packt书籍《Python API开发基础》构建的。我可以成功地从数据库获取数据,但发布数据时遇到问题

我正在使用Flask、SQLAlchemy和Flask_restful,以及Microsoft Server Management Studio本地数据库

我当前在尝试向Users表中插入条目时出错。用户只是一个ID、姓名、年龄。以下是您可以在此处找到的书籍示例:

如果你看一下这个例子,你会发现他们用于get方法的示例代码对我也不起作用,我提出了自己的策略。但是我很难想出post方法的策略

尝试此httpie命令时,我在users.py资源中遇到此错误:http POST localhost:5000/users Name=“Kyle”Age=“22”

错误 也就是说,这是我没有使用books示例的原因之一,我不知道模型中的
userList
列表做什么,也不知道为什么要将新创建的用户添加到其中。我看不到有什么地方会被推送到数据库。它只是被放在一个列表中

用户资源 顺便说一句,sqlToJson是我编写的一个文件,因为我无法让书中的示例正常工作

用户模型 app.py
非常感谢您的帮助。

返回user.data,HTTPStatus.CREATED-删除.data因为您想返回一个用户

很好,但我遇到了一个新错误,
TypeError:user类型的对象不是JSON可序列化的
。我试图用jsonify(user)而不是仅仅用user来解决这个问题,但这似乎没有改变任何事情。有什么想法吗?看到了吗
[2021-03-29 15:40:58,891] ERROR in app: Exception on /users [POST]
Traceback (most recent call last):
  File "c:\users\e096752\documents\cole's projects\flask projects\testproj\venv\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\users\e096752\documents\cole's projects\flask projects\testproj\venv\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "c:\users\e096752\documents\cole's projects\flask projects\testproj\venv\lib\site-packages\flask_restful\__init__.py", line 468, in wrapper
    resp = resource(*args, **kwargs)
  File "c:\users\e096752\documents\cole's projects\flask projects\testproj\venv\lib\site-packages\flask\views.py", line 89, in view
    return self.dispatch_request(*args, **kwargs)
  File "c:\users\e096752\documents\cole's projects\flask projects\testproj\venv\lib\site-packages\flask_restful\__init__.py", line 583, in dispatch_request   
    resp = meth(*args, **kwargs)
  File "C:\Users\e096752\Documents\Cole's Projects\Flask Projects\testProj\resources\users.py", line 27, in post
    return user.data, HTTPStatus.CREATED
AttributeError: 'User' object has no attribute 'data'
from flask import request
from flask_restful import Resource
from http import HTTPStatus
from flask import jsonify
from sqlToJson import convert_sqlaLchamy_to_json
from models.Users import User, userList

class User_List_Resource(Resource):

    def get(self):
        
        users = User.query.all()

        data = jsonify(convert_sqlaLchamy_to_json(users))
        
        return data

    def post(self):

        data = request.get_json()

        user = User(Name=data['Name'],
                        Age=data['Age'])
        
        userList.append(user)

        return user.data, HTTPStatus.CREATED
from extensions import db

userList = []

def get_last_id():
    if userList:
        lastUser = userList[-1]
    else:
        return 1
    return lastUser.id + 1

class User(db.Model):
    __tablename__ = 'Users'
    ID = db.Column(db.Integer, primary_key=True)
    Name = db.Column(db.String(50))
    Age = db.Column(db.Integer)

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import create_engine
from flask_restful import Resource, Api
from flask import jsonify
import json
from sqlToJson import convert_sqlaLchamy_to_json
import datetime
from flask_restful import Api

from config import Config
from extensions import db
from models.Case_Log import Case_Log
from resources.case_log import Case_Log_List_Resource
from models.Users import User
from resources.users import User_List_Resource
from resources.home import Home_Resource

def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)

    register_extensions(app)
    register_resources(app)

    return app


def register_extensions(app):
    db.init_app(app)

def register_resources(app):
    api = Api(app)

    #Add all resources as routes
    api.add_resource(Home_Resource, '/')
    api.add_resource(Case_Log_List_Resource, '/case_logs')
    api.add_resource(User_List_Resource, '/users')

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