sqlalchemy查询时把query.first()变成字典
时间: 2024-03-13 22:44:10 浏览: 106
可以使用`sqlalchemy`的`to_dict()`函数将查询结果转化为字典。示例代码如下:
```
from sqlalchemy.orm import class_mapper
def to_dict(model, exclude=[]):
'''
将sqlalchemy查询的结果转化为字典
:param model: 查询结果
:param exclude: 不需要转化的字段列表
:return: 字典
'''
if isinstance(model, list):
return [to_dict(m, exclude) for m in model]
else:
columns = [c.key for c in class_mapper(model.__class__).columns]
return dict((c, getattr(model, c)) for c in columns if c not in exclude)
result = query.first()
result_dict = to_dict(result)
```
这样就可以将查询结果转化为字典了。其中,`exclude`参数是不需要转化的字段列表,可以根据实际情况进行设置。
相关问题
flask_sqlalchemy 查询结果转字典
可以使用字典推导式将查询结果转换为字典,示例代码如下:
```
result = db.session.query(User).filter_by(username='john').first()
user_dict = {column.name: getattr(result, column.name) for column in result.__table__.columns}
```
其中,`User` 是数据库模型类,`result` 是查询结果,`user_dict` 是转换后的字典。
@app.route('/tem', methods=['GET', 'POST']) def temdata(): if request.method == 'GET': tems = Tem.query.filter().first() context = { 'tems': tems } return render_template('温度.html', **context)连接数据库数据怎么写
下面是一个简单的使用Flask和SQLAlchemy连接数据库的示例代码,可以参考一下:
```python
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 配置数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@hostname/database'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# 定义数据模型
class Tem(db.Model):
__tablename__ = 'tem'
id = db.Column(db.Integer, primary_key=True)
value = db.Column(db.Float)
@app.route('/tem', methods=['GET'])
def temdata():
tems = Tem.query.filter().first()
context = {
'tems': tems.value if tems else 0 # 如果查询结果为空,返回默认值0
}
return render_template('温度.html', **context)
```
以上代码中,我们首先配置了数据库连接信息,然后定义了一个名为`Tem`的数据模型,它包含一个名为`value`的浮点数字段。
在`temdata()`函数中,我们使用`Tem`模型对数据库进行查询,并将查询结果放入`context`字典中,最后将`context`传递给`render_template()`函数,以渲染模板并返回给用户浏览器。
阅读全文