python - 如何使用 SQLAlachemy 进行选择?
问题描述
我正在使用 SQAlchemy 和 python,没有烧瓶,当我执行无限循环并调用 sqlalchemy 提供的 select 方法时,它返回我的表的值,但是当从 phpmyadmin 更改特定列的值时,在 python 脚本中没有反映所做的更改,有人可以给我一些建议或帮助,请提前谢谢你。
PD:我把代码留给你分析:
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey, create_engine, Float, DateTime, update, Date, Time
from sqlalchemy.sql import select
import time
import os
ahora = Table('ahora', metadata,
Column('id', Integer, primary_key=True),
Column('temperatura', Float()),
Column('humedad', Float()),
Column('canal1', Float()),
Column('canal2', Float()),
Column('canal3', Float()),
Column('canal4', Float()),
Column('hora', Time()),
)
engine = create_engine('mysql+pymysql://javi:javiersolis12@10.0.0.20/Tuti')
connection = engine.connect()
while True:
#Seleccionara la unica entrada en la tabla Configuracion
query = select([configuracion])
confi_actual = connection.execute(query).fetchone()
query_aux = select([ahora])
datos_actuales = connection.execute(query_aux).fetchone()
print(datos_actuales)
time.sleep(8)
解决方案
您可以在会话中指定需要选择到查询中的组件。然后使用,例如all()
获取所有的输入。请看下一个例子:
import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
...
class Ahora(Base):
__tablename__ = 'ahora'
id = sa.Column(sa.Integer, primary_key=True)
temperatura: int = sa.Column(sa.Float)
...
...
engine = create_engine('mysql+pymysql://javi:javiersolis12@10.0.0.20/Tuti')
session = Session(engine)
query = session.query(Ahora)
# some actions with query, for example filter(), limit(), etc
ahora = query.all()
推荐阅读
- firebase - 使用 get() 对 Firestore 安全规则缺少权限或权限不足
- java - ListView 最大高度
- swift - 什么是 EXC_BAD_ACCESS(代码=2,地址=0x16f39fff8)?
- kotlin - 我如何在 kotlin 中拆分字符串
- php - 在创建另一个数组后在 php 中使用 array_combine 时,数据被覆盖
- google-developer-tools - 每次打开开发人员工具时停止显示 Google 最新消息
- bash - 使用 shell 命令从网站上抓取/下载 mp3 文件
- java - 在 Java 中读取图形的邻接列表时,如何避免重复边?
- amazon-web-services - 如何遍历多个 AWS 账户?
- c# - 联系表格 ASP.NET C#