Python全系列 教程
3567个小节阅读:5930.3k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
limit:可以限制查询的时候只查询前几条数据。 属top-N查询
offset:可以限制查找数据的时候过滤掉前面多少条。可指定开始查询时的偏移量。
切片:可以对Query对象使用切片操作,来获取想要的数据。
slice(start,stop)
方法来做切片操作。[start:stop]
的方式来进行切片操作。xxxxxxxxxx
from random import randint
from sqlalchemy import Column,Integer,String
from db_util import Base,Session
class News(Base):
__tablename__ = 't_news'
id = Column(Integer,primary_key=True,autoincrement=True)
title = Column(String(32),nullable=False)
content = Column(String(32),nullable=False)
read_count = Column(Integer)
def __repr__(self):
return f'<User: id={self.id} title={self.title} content={self.content} read_count={self.read_count}>'
def create_data():
Base.metadata.drop_all()
Base.metadata.create_all()
with Session() as ses:
for i in range(10):
news = News(title=f'title{i}',content=f'info{i}',read_count= randint(0,1000))
ses.add(news)
ses.commit()
def query_by_limit():
with Session() as ses:
newss = ses.query(News).limit(3).all()
for n in newss:
print(n)
def query_by_offset():
with Session() as ses:
newss = ses.query(News).offset(3).all()
for n in newss:
print(n)
def query_by_page():
# limit topN数据
# offset 跳过n数据
# 分页效果 1-3 4-6 7-9
# 3 0 1 (pagenum-1)*pagesize
# 3 3 2 (2-1)*3 = 3
# 3 6 3 (3-1)*3 = 6
# 3 9 4 (4-1)*3 = 6
with Session() as ses:
# (pagenum-1)*pagesize
newss = ses.query(News).limit(3).offset(3).all()
for n in newss:
print(n)
def query_by_slice():
with Session() as ses:
# 从哪个索引开始,到哪个索引结束
newss = ses.query(News).slice(3,6).all()
for n in newss:
print(n)
def query_by_qiepian():
with Session() as ses:
# 从哪个索引开始,到哪个索引结束
newss = ses.query(News).all()[3:6]
for n in newss:
print(n)
if __name__ == '__main__':
# create_data()
# query_by_limit()
# query_by_offset()
# query_by_page()
# query_by_slice()
query_by_qiepian()
实时学习反馈
1. 在SQLAlchemy中,对数据分页说法错误的是?
A 可以通过limit
方法,获取指定条数数据
B 可以通过offset
方法,跳过指定条数数据
C 可以通过slice
方法,达到分页效果
D 可以通过limit
方法,达到分页效果
答案
1=>D