嗨,朋友们,我正在开发一个类似于现在服务的应用程序。我有来自用户的请求,必须进行处理。我为此使用python-flask和sqlite。
我是不熟悉烧瓶的人,这是我的第一个项目。如果我错了,请纠正我。
result = cur.execute("SELECT * from orders")
orders = result.fetchmany(5)
我正在尝试使用orders = result.paginate(...)
但是似乎有一些问题。 另外,我不确定如何在不同页面中显示数据库数据。
我想要第一页上的前10条记录,第二页上的前10条,依此类推。
能请你帮我吗?
答案 0 :(得分:0)
我从未使用过flask,但是假设您可以发出分页/页面抛出,那么引入0-9值的查询将允许有条件的页面抛出。
例如,假设一个具有3列的 orders 表 orderdate , ordertype , orderdesc 所需的顺序是根据那些列的顺序(请参见注释),然后下面的操作将导致列的范围是0到9,从而允许检查是否有丢步现象:-
SELECT *,
(
SELECT count()
FROM ORDERS
WHERE orderdate||ordertype||orderdesc < o.orderdate||o.ordertype||o.orderdesc
ORDER BY orderdate||ordertype||orderdesc
) % 10 AS orderby
FROM ORDERS AS o ORDER BY orderdate||ordertype||orderdesc
考虑以下使用中的上述示例。这将生成100行订单,并在指定范围内随机生成订单日期和订单类型,然后根据上述查询提取数据。底涂数据和提取的数据的结果显示在结果部分。
/* Create Test Environment */
DROP TABLE IF EXISTS orders;
/* Generate and load some random orders */
CREATE TABLE If NOT EXISTS orders (orderdate TEXT, ordertype TEXT, orderdesc TEXT);
WITH RECURSIVE cte1(od,ot,counter) AS
(
SELECT
datetime('now','+'||(abs(random()) % 10)||' days'),
(abs(random()) % 26),
1
UNION ALL SELECT
datetime('now','+'||(abs(random()) % 10)||' days'),
(abs(random()) % 26),
counter+1
FROM cte1 LIMIT 100
)
INSERT INTO orders SELECT * FROM cte1;
/* Display the resultant data */
SELECT rowid,* FROM orders;
/* Display data with generated page throw indicator */
SELECT rowid,*,
(
SELECT count()
FROM ORDERS
WHERE orderdate||ordertype||orderdesc < o.orderdate||o.ordertype||o.orderdesc
ORDER BY orderdate||ordertype||orderdesc
) % 10 AS orderby
FROM ORDERS AS o ORDER BY orderdate||ordertype||orderdesc;
/* Clean up */
DROP TABLE IF EXISTS orders;