【问题标题】:What is pythonic way with SQLAchemy to update dataset?使用 SQLAlchemy 更新数据集的 pythonic 方式是什么?
【发布时间】:2015-11-29 12:32:53
【问题描述】:

我想在我的 utils 中实现一个简单的流程:

  1. 从数据库中获取rs=Query()
  2. 遍历rs并发送请求requests.get(rs['http'])
  3. 解析响应并获取logo_url
  4. 更新rs数据集
import requests

from sqlalchemy import create_engine

engine = create_engine("mssql://me:pass@server/db")

md = sqlalchemy.MetaData(engine)
table = sqlalchemy.Table('stations', md, autoload=True)

station = engine.execute("select * from stations")
for row in station:
    upd = table.filter_by(id=5).update(values={'STATION_LOGO_URL': 'http://test.com/img.png'})
    engine.execute(upd)

SQLAlchemy 可以做这样的事情吗?

【问题讨论】:

    标签: python sql-server python-2.7 orm sqlalchemy


    【解决方案1】:

    我不知道不使用SQLAlchemy ORM 的方法。但是使用 ORM 很简单:

    class Station(Base):
        __tablename__ = 'stations'
        ...
        station_logo_url = Column('STATION_LOGO_URL', NVARCHAR)
        ...
    
    ...
    
    stations = session.query(Station).all()
    for station in stations:
        logo_url = get_logo_url(station)
        station.station_logo_url = logo_url
    session.commit()
    

    【讨论】:

    • 你在“ORM”下是什么意思?
    • @SpanishBoy 对象关系映射
    • 我明白了 :),但我问的是你用什么框架来做 ORM 而不是 SQLAlchemy ORM?
    • 我使用 SQLAlchemy ORM,我的答案是基于这个 ORM
    猜你喜欢
    • 2015-02-21
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2014-12-19
    相关资源
    最近更新 更多