[ flask ] flask-restful 实现嵌套的有关系的输出字段
问题描述:
1. 先说明数据关系:有用户,和菜谱。一个用户可以拥有多个菜谱:一对多的关系
2. resources/users.py 的输出字段:
user_fields = {
'id':fields.Integer,
'username':fields.String,
'email':fields.String,
'avatar':fields.String
}
3. resources/cookbooks.py 的输出字段:
cookbook_fields = {
'id':fields.Integer,
'name':fields.String,
'description':fields.String,
'imageUrl':fields.String,
'myfoods':fields.String,
'step':fields.String,
'author':????
}
如上所述,我想返回一个菜谱的时候同时返回这个菜谱的作者信息(见上面高亮部分),该如何实现呢?
具体实现:
from flask_restful import Resource,fields,marshal_with,reqparse,inputs,marshal
from app.api.resources.users import user_fields class AuthorRaw(fields.Raw):
def output(self,key,cookbook):
return marshal(cookbook.users,user_fields) cookbook_fields = {
'id':fields.Integer,
'name':fields.String,
'description':fields.String,
'imageUrl':fields.String,
'myfoods':fields.String,
'step':fields.String,
'author':AuthorRaw
}
如上所示,我们定义 output(self,key,cookbook)方法来覆盖父类的output方法
其中,第二个参数cookbook指向Cookbook的实例,第一个参数是实例中的一个字段
最终效果:
备注:
用 fields.Nested 啊,它不香么
详情见:https://github.com/LongchuanYu/wefoods_backend
[ flask ] flask-restful 实现嵌套的有关系的输出字段的更多相关文章
- Python flask 基于 Flask 提供 RESTful Web 服务
转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转 ...
- flask开发restful api系列(8)-再谈项目结构
上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入.上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章 ...
- flask开发restful api
flask开发restful api 如果有几个原因可以让你爱上flask这个极其灵活的库,我想蓝图绝对应该算上一个,部署蓝图以后,你会发现整个程序结构非常清晰,模块之间相互不影响.蓝图对restfu ...
- 使用 Python & Flask 实现 RESTful Web API
环境安装: sudo pip install flask Flask 是一个Python的微服务的框架,基于Werkzeug, 一个 WSGI 类库. Flask 优点: Written in Pyt ...
- 使用 Python 和 Flask 设计 RESTful API
近些年来 REST (REpresentational State Transfer) 已经变成了 web services 和 web APIs 的标配. 在本文中我将向你展示如何简单地使用 Pyt ...
- Flask之RESTFul API前后端分离
Flask之RESTFul API前后端分离 一:虚拟环境搭建的两种方式 1 pipenv的使用 pip install --user pipenv安装pipenv在用户目录下 py -m site ...
- Flask实现RESTful API(注意参数位置解析)
准备工作 首先安装flask_restful三方组件 pip install flask_restful 在models.py中新建一个类,生成表,往里面插入一些数据.(flask要想使用ORM的话需 ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- Flask - Flask的蓝图(BluePrint)
目录 Flask - Flask的蓝图(BluePrint) 一. 初始Flask蓝图 进阶Flask蓝图 使用蓝图做一个增删改查 1.使用蓝图进行web应用搭建: 2.使用Flask蓝图,查看学生信 ...
随机推荐
- 【科研】科研【合同】盖章流程/横向·非涉密/电子科技大学
[前置手续] 一.在科研管理系统里填单子,立项. 二.科研管理系统审核通过后,对于对面给好的合同,在合同系统里选择[合同业务发起-发起非标准合同],填单子. 三.会有一系列的审核,审核完成后打印合同备 ...
- 服务器安装Centos7
目录 一.安装 一.安装 1.开启虚拟机后会出现以下界面 Install CentOS 7 安装CentOS 7 Test this media & install CentOS 7 测试安装 ...
- python基础 (三)
成员运算 判断某个个体在不在某个群体里,关键词:in(在),not in(不在)例如: 特殊的,如果是字典中,因为字典的V值是隐藏的,能查看的只有V,所以无法判断V值,只能判断K值. 身份运算 用于判 ...
- java 数据类型:<泛型>在方法中和在构造器中的应用
背景: Java不允许我们把对象放在一个未知的集合中. import java.util.ArrayList; import java.util.List; /** * @ClassName Meth ...
- outlook2007邮件里的图片显示不出来
outlook2007邮件里的图片显示不出来,这是为啥? 以图片为附件的形式进行传送吧,这样在收件箱里就能在线看图片了,不用担心看不到图片
- MyBatis学习(五)MyBatis-开启log4j日志
1.前言 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等 ...
- IDEA通过git回滚到某个提交节点或某个版本
1.项目右键后,点击"Git - Show History" 这里会显示有历史提交的版本记录(这里我们假设要回滚到 "提交" 版本中) 2.选中 "提 ...
- JAVA查询类别(菜单)下的所有子类别(递归)
/** * 获取父类别下面的所有子类别 * @return List<StoreGoodsCate> 返回当前类别下的所有子类别集合 */ public List<StoreGood ...
- 一个VS主题网站https://studiostyl.es/
地址: https://studiostyl.es/ 用法: 工具->导入和导出设置->导入选定的环境设置->是,保存我当前的设置->选择下载的主题文件,完成.
- 【LeetCode】276. Paint Fence 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetco ...