烧瓶+棉花糖
flask-marshmallow的Python项目详细描述
烧瓶+棉花糖,提供美丽的原料药
flask marshmallow是Flask(python web框架)和marshmallow(对象序列化/反序列化库)的一个瘦集成层,它为marshmallow添加了额外的特性,包括hateoas ready api的url和超链接字段。它还(可选)与Flask-SQLAlchemy集成。
立即获取
pip install flask-marshmallow
创建你的应用程序。
fromflaskimportFlask,jsonifyfromflask_marshmallowimportMarshmallowapp=Flask(__name__)ma=Marshmallow(app)
写下你的模型。
fromyour_ormimportModel,Column,Integer,String,DateTimeclassUser(Model):email=Column(String)password=Column(String)date_created=Column(DateTime,auto_now_add=True)
用棉花糖定义输出格式。
classUserSchema(ma.Schema):classMeta:# Fields to exposefields=("email","date_created","_links")# Smart hyperlinking_links=ma.Hyperlinks({"self":ma.URLFor("user_detail",id="<id>"),"collection":ma.URLFor("users")})user_schema=UserSchema()users_schema=UserSchema(many=True)
在视图中输出数据。
@app.route("/api/users/")defusers():all_users=User.all()result=users_schema.dump(all_users)returnjsonify(result.data)# OR# return user_schema.jsonify(all_users)@app.route("/api/users/<id>")defuser_detail(id):user=User.get(id)returnuser_schema.jsonify(user)# {# "email": "fred@queen.com",# "date_created": "Fri, 25 Apr 2014 06:02:56 -0000",# "_links": {# "self": "/api/users/42",# "collection": "/api/users/"# }# }
了解更多
要了解更多关于棉花糖的信息,请查看它的docs。
项目链接
许可证
麻省理工学院许可。有关详细信息,请参见捆绑的LICENSE文件。