SQLAlchemy操作MariaDB笔记之四
2015-09-29 10:51
561 查看
统计函数
计数session.query(User).filter(User.name.like('%ed')).count()
分组计数
from sqlalchemy import func session.query(func.count(User.name), User.name).group_by(User.name).all()
全部计数
session.query(func.count('*')).select_from(User).scalar()
一对多关系,外键
注意ForeignKey和relationship以及backref的用法backref的语意为User对象可以反向索引Address对象,通过绑定的addresses属性,即user.addresses
>>> from sqlalchemy import ForeignKey >>> from sqlalchemy.orm import relationship, backref >>> class Address(Base): ... __tablename__ = 'addresses' ... id = Column(Integer, primary_key=True) ... email_address = Column(String(100), nullable=False) ... #指定外键,与users表的主键关联 ... user_id = Column(Integer, ForeignKey('users.id')) ... #指定反向属性 ... user = relationship("User", backref=backref('addresses', order_by=id)) ... ... def __repr__(self): ... return "<Address(email_address='%s')>" % self.email_address
同步数据库
Base.metadata.create_all(engine)
测试
>>> jack = User(name='jack', fullname='Jack Bean', password='gjffdd') >>> jack.addresses [] >>> jack.addresses = [ ... Address(email_address='jack@google.com'), ... Address(email_address='j25@yahoo.com')] `>>> jack.addresses[1] <Address(email_address='j25@yahoo.com')> >>> jack.addresses[1].user <User(name='jack', fullname='Jack Bean', password='gjffdd')>` >>> session.add(jack) >>> session.commit()
相关文章推荐
- SQLAlchemy操作MariaDB笔记之三
- 基于MariaDB Galera Cluster的数据库HA方案
- SQLAlchemy操作MariaDB笔记之二
- 转 -- mariadb galera集群配置
- centOS7 下安装测试mariadb,SQLAlchemy第一次使用
- centos7 设备 mariadb-10
- CentOS 7.0 配置nginx+php+mariadb开发环境
- CentOS7安装MariaDB5.5.39全记录
- MariaDB启动脚本/etc/init.d/mysql的坑
- MariaDB(mysql)排序诡异问题
- linux运维之LAMP(apache+mariadb+php)搭建
- CentOS6.5 安装 Mariadb10.0.20
- 淘宝内部分享:MySQL & MariaDB性能优化
- CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)
- centos7安装数据库mariadb
- CentOS7安装Apache+PHP+MariaDB
- CentOS安装和设置MariaDB的教程
- 详解Centos 使用YUM安装MariaDB
- centos 7安装mysql5.5和安装 mariadb使用的命令
- 浅谈MySQL和mariadb区别