簡體   English   中英

Flask-Marshmallow通過API公開DB內容的問題

[英]Issue with Flask-Marshmallow exposing DB contents via API

我正在開發一個API,它將從數據庫返回條目。 我正在使用Flask-SQLAlchemy,Flask-Marshmallow,Flask-Admin和Docker來打包它。

在一個文件Packages.py中,我有關於數據庫的以下代碼。 PckagesSchema類是我在嘗試使Flash-Marshmallow工作時添加的類。

class Packages(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    trackingnumber = db.Column(db.String(15))
    email = db.Column(db.String(80))
    localid = db.Column(db.String(80))

class PackagesSchema(ma.ModelSchema):
    class Meta:
        model = Packages

在主文件中我有以下代碼片段

from app.models import Packages, PackagesSchema
packages_schema = PackagesSchema()
db.create_all()

然后進一步向下處理API GET請求的部分。

@app.route('/packages', methods=['GET'])
def get_packages():
    result = packages_schema.dump(Packages).data
    return jsonify(result)

此時此返回:

{
  "email": "Packages.email", 
  "localid": "Packages.localid", 
  "trackingnumber": "Packages.trackingnumber"
}   

但是,當Flask-Admin應用程序顯示它時,數據庫中肯定存在某些內容。

這是我與Flask-Marshmallow合作的第一天,所以我根本沒有經驗,並感謝任何幫助。 我已閱讀https://flask-marshmallow.readthedocs.io/en/latest/但仍然卡住了。

我剛剛在棉花糖上刷了一點:

@app.route('/packages', methods=['GET'])
def get_packages():
    packages = Packages.query.all()
    result = packages_schema.dump(packages).data
    return jsonify(result)

應該給你一切。 如果要返回許多記錄,則需要添加packages_schema = PackagesSchema(many=True)

此外,不知道你正在運行什么版本的燒瓶...但在最新版本之前,我不認為jsonify會在這里工作,因為你不能在列表上調用它。 抬起頭來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM