赞
踩
惯例,先将重复的程序再抄一遍:
from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String from sqlalchemy.orm import sessionmaker # 连接数据库 # 地址 HOSTNAME = '127.0.0.1' # 数据库 几栋 DATABASE = 'selectClass' # 端口 门牌号 PORT = 3306 # 用户名 密码 USERNAME = 'root' PASSWORD = 'root' DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE) engine = create_engine(DB_URL) # 都要继承这个函数生成的基类 Base = declarative_base(engine)
这段代码除了数据库变化了外,其余不需要进行改动
定义class,配置数据表:
class Article(Base): __tablename__ = 'article1' id = Column(Integer,primary_key=True,autoincrement=True) title = Column(String(50)) # 倒序的 # __mapper_args__ = { # 'order_by': -id # } def __str__(self): return 'Article(title:%s)' % self.title Base.metadata.create_all() Session = sessionmaker(bind=engine) session = Session()
代码方式批量生成数据:
for i in range(10):
article = Article(title='title%s' %i)
session.add(article)
session.commit()
article = session.query(Article).all()
# 显示所有
按照id排序并显示
article = session.query(Article).order_by(Article.id).all()
倒序:
article = session.query(Article).order_by(Article.id.desc()).all()
也可以使用 -Article.id来实现倒序
article = session.query(Article).order_by(-Article.id).all()
limit :限制查看个数
article = session.query(Article).order_by(-Article.id).limit(3).all()
从第2个查看:(注:这里的2是指id为3,偏移量为2,在1的基础上偏移2就是3)
article = session.query(Article).order_by(Article.id).limit(3).offset(2).all()
如果排序为倒序,则查看的是倒数第三个
article = session.query(Article).order_by(-Article.id).limit(3).offset(2).all()
切片操作:
article = session.query(Article).all()[2:5]
注:切片操作要在所有其他操作完成后进行
遍历所有可迭代元素代码:(因为查询到的article是一个可迭代元素,需要遍历)
for item in article:
print(item)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。