老师,你视频刚开始那个分页最后的r我要提问est = obj.get_more_by_page(2,3)是什么意思?

来源:3-4 python更新mysql数据

慕的地7209688

2018-08-29

分页的两个值,例如(0 , 10) 是不是就是前10条,(2, 10)就是从第三条开始往后抓取10条,可是这边的(2,3)是什么意思?最后输出只有一条新闻?

http://img.mukewang.com/szimg/5b864b6c000120c607300455.jpg

http://img.mukewang.com/szimg/5b864b6c0001a6d912660588.jpg


写回答

2回答

NavCat

2018-08-29

从第3条开始,取3条呀,如果不够3条了,就取剩下的呀

0
0

慕的地7209688

提问者

2018-08-29

//img.mukewang.com/szimg/5b864f5f0001df4211220372.jpg老师,这是库的内容,我知道(2,3)是从第三条开始抓3条。就是好奇为什么这段代码输出的值却是这个数据库里的最后一条?

sql = 'SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC LIMIT %s, %s;'这行代码是不是根据type进行降序?就很疑惑降序为什么输出结果会是9?

   def get_more_by_page(self,page,pagesize):
       '''分页查询数据'''
       offset = (page - 1) *pagesize
       #准备SQL
       sql = 'SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC LIMIT %s, %s;'
       #找到cursor
       cursor = self.conn.cursor()
       #执行SQL
       cursor.execute(sql,('百家', offset, pagesize))
       #拿到结果
       rest = [dict(zip([k[0] for k in cursor.description], row))
               for row in cursor.fetchall()]
       #处理数据
       #关闭cursor/链接
       cursor.close()
       self.close_conn()
       return rest

def main():
   obj = MysqlSearch()
   rest = obj.get_more_by_page(2,3)
   for item in rest:
       print(item)
       print('------')

if __name__=='__main__':
   main()

0
3
NavCat
回复
慕的地7209688
你把那个SQL打印出来看看,或者把排序字段设置成id
2018-08-29
共3条回复

Python操作三大主流数据库-MySQL+MongoDB+Redis

一次实战同时掌握Python操作MySQL,MongoDB,Redis 三大数据库使用技巧

2024 学习 · 376 问题

查看课程