如何解决转储后棉花糖返回空的 JSON
我正在尝试使用flask-restful、flask-sqlalchemy 和flask-marshmallow 用Flask 实现一个restful API。我知道关于这个问题有很多问题,但我仍然无法弄清楚。 在棉花糖模式中使用 strict=True 或将 .data 添加到 user_schema.dump(result) 等解决方案不会让我看到我的结果响应正文。
这是我的代码:
# User.py file
from flask import jsonify,request
from flask_restful import Resource
from src import db
from src.models.user import User
from src.validation import UserSchema
class Users(Resource):
def get(self):
try:
data = request.get_json()
user = User.query.filter_by(email=data['email']).first()
user_schema = UserSchema()
result = user_schema.dump(user)
return jsonify(result)
except:
return jsonify({'error_message': 'User not found'})
def post(self):
try:
data = request.get_json()
user = User(data["firstName"],data["lastName"],data["email"],data["password"])
db.session.add(user)
db.session.commit()
user_schema = UserSchema()
result = user_schema.dump(user)
return result
except:
return jsonify({'error_message': 'User already exists in database'})
init.py 文件:
from flask import Flask
from flask_sqlalchemy import sqlAlchemy
from flask_restful import Api
from flask_marshmallow import Marshmallow
app = Flask(__name__)
app.config["DEBUG"] = True
app.config["sqlALCHEMY_ECHO"] = True
app.config['sqlALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['sqlALCHEMY_DATABASE_URI'] = "postgresql:///gauss"
ma = Marshmallow(app)
api = Api(app)
db = sqlAlchemy(app)
from src import routes
validation.py 文件:
from src import ma
from src.models.user import User
class UserSchema(ma.sqlAlchemySchema):
class Meta:
model = User
以及数据库的 User.py 架构:
from src import db
from datetime import datetime
class User(db.Model):
id = db.Column(db.Integer,primary_key=True)
firstName = db.Column(db.String(20))
lastName = db.Column(db.String(20))
email = db.Column(db.String(50),unique=True,nullable=False)
password = db.Column(db.String(),nullable=False)
createdAt = db.Column(db.DateTime,default=datetime.utcNow)
def __init__(self,firstName,lastName,email,password):
self.firstName = firstName
self.lastName = lastName
self.email = email
self.password = password
几天以来我一直在寻找解决方案,似乎棉花糖返回空 json 的情况主要发生在使用 .all() 方法进行查询时,例如,因为棉花糖 。 dump() 方法错过了 Many=True 配置。
我可能遗漏了一些东西,但我无法理解它。任何帮助表示赞赏!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。