使用.first()方法没有结果

2024-07-03 06:15:22 发布

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

尝试处理基于.first()方法的查询结果时出错,而.all()方法返回预期的值

@app.route('/getAlphabet')
def getElement():
    abc=["abc","def","ghi"]
    newTest=Test(idU1=json.dumps(abc))
    db.session.add(newTest)
    db.session.commit()
    entryString = testSchema.dumps(Test.query.with_entities(Test.idU1).filter_by(idm=1).first())
    return entryString 

在浏览器中查看的结果是[{}],而.all()则生成预期的结果[{“idU1”:“[\”abc\“,\”def\“,\”ghi\“]>”

有人有同样的问题吗

设置数据库的代码:

app = Flask(__name__)
app.config["DEBUG"] = True

SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://{username}:{password}@{hostname}/{databasename}".format(
    username="Ehrismann",
    password="abcdefgh",
    hostname="Ehrismann.mysql.pythonanywhere-services.com",
    databasename="Ehrismann$default",
)

app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI  # connection specs
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299  # don't care
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

db = SQLAlchemy(app)  # actually make connection
ma = Marshmallow(app)  # instantiate MarshmallowObject


class Test(db.Model):  # new Table: comment

    __tablename__ = "test"
    idm = db.Column(db.Integer, primary_key=True)  # new Column
    idU1=db.Column(db.String(100), nullable=False)

class TestSchema(ma.ModelSchema):
    class Meta:
        model=Test

testSchema = TestSchema(many=True)


Tags: nametestconfigtrueappdbsqlalchemydef