V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
1800x
V2EX  ›  Python

如何通过 sqlalchemy 实现 go 语言 sqlx 中的模型效果:查询结果填充 和 查询参数绑定

  •  
  •   1800x · 2019-04-13 13:55:06 +08:00 · 1719 次点击
    这是一个创建于 1833 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如有下面的模型:
    type Person struct {
    FirstName string `db:"first_name"`
    LastName string `db:"last_name"`
    }

    查询结果填充
    jason = Person{}
    err = db.Get(&jason, "SELECT * FROM person WHERE first_name=$1", "Jason")
    Get 会将查询到的第一行数据填充给对象 jason

    查询参数绑定
    rows, err = db.NamedQuery(`SELECT * FROM person WHERE first_name=:first_name`, jason)
    NamedQuery 会从对象 jason 字段去查找 sql 语句中:参数

    python 中用 sqlalchemy 怎么实现?? 或者其它 python 库可以实现也行
    第 1 条附言  ·  2019-04-14 17:30:11 +08:00
    暂时放弃原生 sql

    目前是这样实现的:

    inserter = expression.insert(model.User).values(name=name, phone=phone, account_id=account_id)
    res = session.execute(inserter)


    user = session.query(model.User).filter(model.User.id==account_id).first()

    期待 python 专家提供能支持原生 sql 的方案
    2 条回复    2019-04-13 18:10:31 +08:00
    neoblackcap
        1
    neoblackcap  
       2019-04-13 17:48:35 +08:00 via iPhone
    可以的,你写 model 的时候指定字段名就可以了
    fngtz
        2
    fngtz  
       2019-04-13 18:10:31 +08:00 via iPhone
    PEP 249
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2805 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 11:39 · PVG 19:39 · LAX 04:39 · JFK 07:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.