Skip to content

Commit c522df4

Browse files
committed
fix(pagination): add minimum and maximum values for parameters
1 parent acf765c commit c522df4

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

src/ZhiXueLite/app/admin/routes.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ def is_admin():
2727
@admin_bp.route("/list/schools", methods=["GET"])
2828
def list_schools():
2929
"""列出所有学校"""
30-
page = request.args.get("page", 1, type=int)
31-
per_page = request.args.get("per_page", 10, type=int)
30+
page = max(1, request.args.get("page", 1, type=int))
31+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
3232
query = request.args.get("query", "", type=str)
3333

3434
stmt = select(School).order_by(School.id.asc())
@@ -47,8 +47,8 @@ def list_schools():
4747
@admin_bp.route("/list/users", methods=["GET"])
4848
def list_users():
4949
"""列出所有用户"""
50-
page = request.args.get("page", 1, type=int)
51-
per_page = request.args.get("per_page", 10, type=int)
50+
page = max(1, request.args.get("page", 1, type=int))
51+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
5252
query = request.args.get("query", "", type=str)
5353

5454
stmt = select(User).order_by(User.id.asc())
@@ -67,8 +67,8 @@ def list_users():
6767
@admin_bp.route("/list/zhixue_accounts", methods=["GET"])
6868
def list_zhixue_accounts():
6969
"""列出所有智学网学生账户"""
70-
page = request.args.get("page", 1, type=int)
71-
per_page = request.args.get("per_page", 10, type=int)
70+
page = max(1, request.args.get("page", 1, type=int))
71+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
7272
query = request.args.get("query", "", type=str)
7373

7474
stmt = select(ZhiXueStudentAccount).order_by(ZhiXueStudentAccount.id.asc())
@@ -87,8 +87,8 @@ def list_zhixue_accounts():
8787
@admin_bp.route("/list/exams", methods=["GET"])
8888
def list_exams():
8989
"""列出所有考试"""
90-
page = request.args.get("page", 1, type=int)
91-
per_page = request.args.get("per_page", 10, type=int)
90+
page = max(1, request.args.get("page", 1, type=int))
91+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
9292
query = request.args.get("query", "", type=str)
9393

9494
stmt = select(Exam).order_by(Exam.created_at.desc(), Exam.id.desc())
@@ -113,8 +113,8 @@ def list_exams():
113113
@admin_bp.route("/zhixue/<string:zhixue_username>/users", methods=["GET"])
114114
def list_users_by_zhixue(zhixue_username):
115115
"""根据智学网账号列出绑定的用户"""
116-
# page = request.args.get("page", 1, type=int)
117-
# per_page = request.args.get("per_page", 10, type=int)
116+
# page = max(1, request.args.get("page", 1, type=int))
117+
# per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
118118

119119
zhixue_account = db.session.scalar(select(ZhiXueStudentAccount).where(
120120
ZhiXueStudentAccount.username == zhixue_username))

src/ZhiXueLite/app/exam/routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ def get_exam_list():
9595
- start_time: 开始日期,时间戳,默认 0(不限制)
9696
- end_time: 结束日期,时间戳,默认 0(不限制)
9797
"""
98-
page = request.args.get("page", 1, type=int)
99-
per_page = request.args.get("per_page", 10, type=int)
98+
page = max(1, request.args.get("page", 1, type=int))
99+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
100100
query = request.args.get("query", "", type=str)
101101
scope = request.args.get("scope", "self", type=str)
102102
school_id = request.args.get("school_id", "", type=str)

src/ZhiXueLite/app/task/routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ def get_user_tasks():
3636
"""
3737
获取用户的任务列表
3838
"""
39-
page = request.args.get("page", 1, type=int)
40-
per_page = request.args.get("per_page", 10, type=int)
39+
page = max(1, request.args.get("page", 1, type=int))
40+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
4141
status_filter = request.args.get("status")
4242

4343
stmt = select(BackgroundTask).where((BackgroundTask.user_id == current_user.id) & (BackgroundTask.hide.is_(False)))

src/ZhiXueLite/app/teacher/routes.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def is_admin():
2222
@teacher_bp.route("/list", methods=["GET"])
2323
def get_teacher_list():
2424
"""获取教师账号列表"""
25-
page = request.args.get("page", 1, type=int)
26-
per_page = request.args.get("per_page", 10, type=int)
25+
page = max(1, request.args.get("page", 1, type=int))
26+
per_page = max(1, min(10, request.args.get("per_page", 10, type=int)))
2727
query = request.args.get("query", "", type=str)
2828

2929
stmt = select(ZhiXueTeacherAccount).join(School)

0 commit comments

Comments
 (0)