分页查询这样写,不知道是否正确
来源:3-3 python查询mysql数据库
Ethan_Ban
2019-06-27
我将标题title、想要显示的页码page、每页显示数量page_size全部以变量形式传入,
在get_more_limit( )方法中不明写具体的值。而是在main( )中调用时传入。
运行也正确。
我想问,这种方法在实际开发中,是否可取,会不会参数过多导致其他问题?
# 获取多条数据,并分页
def get_more_limit(self, title, page, page_size):
# 准备SQL
offset = int((page - 1) * page_size)
sql = 'SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC LIMIT %s,%s;'
# 找到cursor
cursor = self.conn.cursor()
# 执行SQL
cursor.execute(sql, (title, offset, page_size))
# 拿到结果, 处理数据
rest = [dict(zip([k[0] for k in cursor.description], row))
for row in cursor.fetchall()]
# 关闭cursor/连接
cursor.close()
self.get_close()
return rest
def main():
obj = MysqlSearch()
rest = obj.get_more_limit('NBA',2, 2)
print(rest)
写回答
2回答
-
NavCat
2019-06-27
这么几个参数还是算少的啦,同学放心。当然如果你觉得参数过多,可以给定参数的默认值,譬如,设置默认的页面大小为20,每页20条数据:
def get_more_limit(self, title, page, page_size=20): pass
如果同学遇到后续开发中参数实在过多,可以考虑将多个参数放到一个dict或者是tuple进行传递。
152019-09-08 -
沧海遗珠丶丶
2019-09-07
offset,page_size不是整形数吗?为什么你limit后面两个%s,可以跑成功?改成%d可以吗?
00
Python操作三大主流数据库-MySQL+MongoDB+Redis
一次实战同时掌握Python操作MySQL,MongoDB,Redis 三大数据库使用技巧
2024 学习 · 376 问题
相似问题