python - 为什么我的过滤器在 python SQLAlchemy Flask 上不起作用?
问题描述
我正在尝试使用 Flask 和 SQLAlchemy 在 python 上创建一个 RESTful API。我编写的所有其他查询都有效,包括在某些资源上使用 get 和 pagination。但问题是我无法让一个特定的资源工作,而这只能通过查看building_id
. 这building_id
是在该特定表上多次出现的外键。
我确实得到了成功的响应,但数据字段为空,即结果行数为 0。
我非常想要这个作为 SQL Alchemy
SELECT * from building_unit where building_id = X order by building_id
感谢您的任何帮助。
模型.py
class buildingUnit(db.Model):
__tablename__ = 'building_unit'
id = db.Column(db.Integer, primary_key=True)
building_id = db.Column(db.Integer, nullable=False)
unit_number = db.Column(db.Text, nullable=False)
beds = db.Column(db.Integer, nullable=False)
baths = db.Column(db.Float, nullable=False)
sqft = db.Column(db.Float, nullable=False)
price = db.Column(db.Float, nullable=False)
def __init__(self, id, building_id, unit_number, beds, baths, sqft, price):
self.id = id
self.building_id = building_id
self.unit_number = unit_number
self.beds = beds
self.baths = baths
self.sqft = sqft
self.price = price
class buildingUnitSchema(ma.Schema):
id = fields.Integer()
building_id = fields.Integer()
unit_number = fields.String(required = False)
beds = fields.Integer(required = False)
baths = fields.Float(required = False)
sqft = fields.Float(required = False)
price = fields.Float(required = False)
building_unit.py
from flask import request
from flask_restful import Resource
from Model import db, buildingUnit, buildingUnitSchema
building_unit_schema = buildingUnitSchema()
class buildingUnitSingleResource(Resource):
def get(self, building_id):
building_unit = buildingUnit.query.filter(buildingUnit.building_id == building_id)
building_unit = building_unit_schema.dump(building_unit).data
return {'status': 'success', 'data': building_unit}, 200
app.py 路由
api.add_resource(buildingUnitSingleResource, '/building_unit/<int:building_id>')
解决方案
你可以尝试这样的事情:
building_unit = buildingUnit.query.get(building_id)
推荐阅读
- node.js - 我想从后端获取本地存储的图像。对象 包含本地图像的地址。我希望获取该对象
- swagger - Swashbuckle 不显示使用自定义类型的属性的注释文本
- javascript - 如何在包含我创建的变量的同时在 javascript 中返回 HTML?
- javascript - 可以将 Promise 的返回用作 Promise.all() 执行中下一个函数调用的输入吗?
- rust-tokio - 为什么不能将 tokio::task::spawn 重构为 fn?
- python - skimage 的意思是没有返回预期的结果?
- javascript - 在下拉菜单中选择项目时如何显示内容?
- javascript - 使用 MySQL 数据更新 ChartJS
- swift - 为什么我收到一个奇怪的错误:nw_protocol_get_quic_image_block_invoke dlopen libquic 在 SwiftUI 中失败?
- c - 如何排除正在运行的可执行文件 C