- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上我想做的是,加入2个表“用户”和“公司”,并获得用户及其相关公司详细信息。
这是用户模型:
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
firstname = db.Column(db.String(10), nullable=False)
lastname = db.Column(db.String(25), nullable=False)
username = db.Column(db.String(250), nullable=False)
email = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(250), nullable=False)
isPasswordReset = db.Column(db.Boolean, nullable=False)
companyId = db.Column(db.Integer, db.ForeignKey(
'company.id'), nullable=True)
class UserSchema(ma.Schema):
id = fields.Integer()
firstname = fields.String(required=True)
lastname = fields.String(required=True)
username = fields.String(required=True)
email = fields.String(required=True)
password = fields.String(required=True)
isPasswordReset = fields.Boolean(required=True)
companyId = fields.Integer()
company_name = fields.Nested(CompanySchema)
class Company(db.Model):
__tablename__ = 'company'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
companyName = db.Column(db.String(100), nullable=True)
companyCode = db.Column(db.String(20), nullable=True)
companyTheme = db.Column(db.String(300), nullable=True)
class CompanySchema(ma.Schema):
id = fields.Integer()
companyName = fields.String(required=True)
companyCode = fields.String(required=True)
companyTheme = fields.String(required=True)
users_schema = UserSchema(many=True)
user_schema = UserSchema()
class UsersResource(Resource):
def get(self):
users = db.session.query(User.firstname, Company.companyName).join(
Company, User.companyId == Company.id).all()
if users:
results = users_schema.dump(users).data
return {'status': 'success', 'message': json.dumps(results, default=str)}, 200
最佳答案
首先,您需要在sqlalchemy模型中声明关系对象:
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
firstname = db.Column(db.String(10), nullable=False)
lastname = db.Column(db.String(25), nullable=False)
username = db.Column(db.String(250), nullable=False)
email = db.Column(db.String(100), nullable=False)
password = db.Column(db.String(250), nullable=False)
isPasswordReset = db.Column(db.Boolean, nullable=False)
companyId = db.Column(db.Integer, db.ForeignKey(
'company.id'), nullable=True)
company = db.relationship("Company", backref="parents") # <--
class UserSchema(ma.Schema):
id = fields.Integer()
firstname = fields.String(required=True)
lastname = fields.String(required=True)
username = fields.String(required=True)
email = fields.String(required=True)
password = fields.String(required=True)
isPasswordReset = fields.Boolean(required=True)
companyId = fields.Integer()
company = fields.Nested(CompanySchema) # <--
attribute
参数)。
user_schema = UserSchema()
users = User.query.all()
results = users_schema.dump(users).data
return {'status': 'success', 'message': json.dumps(results, default=str)}, 200
return users_schema.dump(users)
用于测试)
{
id: 'something',
firstname: 'something',
lastname: 'something',
username: 'something',
email: 'something',
password: 'something',
isPasswordReset: 'something',
company : {
id: 'something',
companyName: 'something',
companyCode: 'something',
companyTheme: 'something',
}
}
关于flask - Flask-SQLAlchemy-棉花糖嵌套模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53224028/
我试图在接到电话后显示 toast,我已经实现了注册广播接收器所需的所有必要内容,但它没有显示 toast。我正在尝试在 Marshmallow 设备上运行此程序 MyCallReceiver.jav
我一直在搜索如何使用 Marshmallow 验证字典的键是否具有值(必需)并且该值的类型是 bytes ,但我没有找到任何可行的方法。 Marshmallow 引用文档中没有与 bytes 数据类型
我有一个 android 应用程序,它在生产环境中运行了几年。最近,我发现应用程序中的 ListView 存在问题,滚动时会变得模糊。该问题仅在 Android Marshmallow 下出现。 He
我想在模拟器中测试我的应用程序的可访问性(特别是 Talkback),但模拟器中似乎缺少该选项。这是模拟器在辅助功能设置中的屏幕截图: 有两个选项 "ClockBack" 和 "QueryBack"
我已经定义了一个需要数据的 POST 调用: { "one" : "hello", "two" : "world", "three" : { "
我想在第二个屏幕(POS)中打开另一个应用程序,所以请帮助我在第二个屏幕上运行另一个应用程序。我获得了 Oreo 的代码,但我需要它才能从 Lollipop 运行到最新版本。 ActivityOpti
我正在使用广播接收器来检测耳机按钮的点击。下面是广播接收器的代码。 public class HeadSetButtonStateReceiver extends BroadcastReceiver
场景如下,我有一个 LoginActivity,它使用 WifiManager 来获取 IP 地址,如下所示: WifiManager wifiManager = (WifiManager)getSy
我对棉花糖很陌生,但我的问题是关于处理类似字典的对象的问题。 Marshmallow 文档中没有可行的示例。我在堆栈溢出中遇到了一个简单的例子 Original question这是答案的原始代码假设
这个问题在这里已经有了答案: Return JSON response from Flask view (14 个回答) 去年关闭。 我在 Flask 上写申请.对于 RestAPI我在用 flask
Appium 支持 Marshmallow 吗?我正在尝试选择 Marshmallow 的平台名称,但它似乎不包含它,而且我安装了最新版本的 Appium...。 最佳答案 我没有将 6.0 Mars
我的带棉花糖的 Galaxy S6 Edge 手机遇到了一个非常有趣的问题。当我进入开发者选项时。我收到的不是一长串选项列表,而是“此用户无法使用开发人员选项”的消息。据我所知,我没有任何其他用户(老
我想声明一个模式字段来接受不同的模式类型,但不是任何 . Marshmallow 是否可能出现以下情况? class SchemaA(Schema): name = String() clas
又是我,现在有一个棉花糖问题,我有以下结构: 路线.py @models.response(ParentSchema()) def get(args, model_id): return {"
This question already has answers here: How do I create a transparent Activity on Android?
我正在为 Android Marshmallow(API 级别 23)开发一个应用程序。 我有一个包含 ListView 的 Activity 。 我使用 BaseView 适配器填充该 ListVi
我有一个通过 SSLSocket 与服务器通信的应用程序。从 Android 6 我收到一个 SSLHandshakeException javax.net.ssl.SSLHandshakeExcep
我有一个使用外部存储来存储照片的应用程序。根据需要,在其 list 中请求以下权限 它使用以下内容来检索所需的目录 File sdDir = Environment .ge
在 Android 6 中,低功耗蓝牙连接参数管理似乎发生了变化。 我有一个 BLE 外围设备需要使用一些特定的连接参数(特别是连接间隔),并且我想使用 BLE 规范允许的最小连接间隔(即 7.5ms
我有一个对象层次结构和一个对应于它们的模式层次结构。此层次结构的中间级别的架构不包括特定的继承字段。我希望从它继承的模式会“继承”这个排除,但如果他们在他们的 Meta 类中添加自己的排除字段,情况似
我是一名优秀的程序员,十分优秀!