首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-Marshmallow通过API公开DB内容的问题

Flask-Marshmallow通过API公开DB内容的问题
EN

Stack Overflow用户
提问于 2016-09-13 01:39:57
回答 1查看 330关注 0票数 1

我正在开发一个API,这将从一个数据库返回条目。我使用Flask-SQLAlchemy、Flask-Marshmallow、Flask-Admin和Docker来打包。

在一个文件Packages.py中,我有以下关于数据库的代码。PckagesSchema类是我在尝试让Flash-Marshmallow工作时添加的类。

代码语言:javascript
复制
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

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

代码语言:javascript
复制
from app.models import Packages, PackagesSchema
packages_schema = PackagesSchema()
db.create_all()

然后再往下看处理API GET请求的部分。

代码语言:javascript
复制
@app.route('/packages', methods=['GET'])
def get_packages():
    result = packages_schema.dump(Packages).data
    return jsonify(result)

在返回的那一刻:

代码语言:javascript
复制
{
  "email": "Packages.email", 
  "localid": "Packages.localid", 
  "trackingnumber": "Packages.trackingnumber"
}   

然而,当Flask-Admin应用程序显示它的时候,数据库中肯定有一些东西。

这是我使用Flask-Marshmallow的第一天,所以我一点经验都没有,如果有任何帮助我将不胜感激。我已经读过https://flask-marshmallow.readthedocs.io/en/latest/了,但还是卡住了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-13 04:25:28

我只是在棉花糖上刷了一点:

代码语言:javascript
复制
@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)

此外,不确定您运行的是哪个版本的flask ...但在最新版本之前,我认为jsonify不能在这里工作,因为你不能在列表上调用它。抬起头来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39455814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档