首页 > 数据库 >flask sqlalchemy 分页(二)

flask sqlalchemy 分页(二)

时间:2024-10-10 16:25:38浏览次数:8  
标签:__ pagination sqlalchemy 分页 flask db color import page

page.html

 
<!--这个是分页展示下面的页码-->
 
{%macro my_paginate(pagination,url)%}
 
<nav>
    <ul class="pagination">
 
        {%if pagination.has_prev%}
        <li class="page-item active"><a class="page-link" href="{{url_for(url,page=pagination.page-1)}}">上一页</a></li>
        {%else%}
        <li class="page-item disabled"><a class="page-link" href="#">上一页</a></li>
        {%endif%}
 
            {%for page in pagination.iter_pages()%}
                {%if page%}
                    <li class="page-item {%if page==pagination.page%}active{%endif%}"><a class="page-link" href="{{url_for(url,page=page)}}">{{page}}</a></li>
                {%else%}
                    <li class="page-item disabled"><a class="page-link" href="#">…</a></li>
                {%endif%}
 
            {%endfor%}
 
        {%if pagination.has_next%}
        <li class="page-item active"><a class="page-link" href="{{url_for(url,page=pagination.page+1)}}">下一页</a></li>
        {%else%}
        <li class="page-item disabled"><a class="page-link" href="#">下一页</a></li>
        {%endif%}
 
    </ul>
</nav>
{%endmacro%}

student.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学生</title>
	<link href="{{url_for('static',filename='/css/style.css')}}" rel="stylesheet">
</head>
<body>
    <div align="center">
        <h2>用户信息</h2>
        <br><br>
		
		
		<tbody>
		<table>
			<colgroup>
				<col width="30%">
				<col width="40%">
				<col width="30%">
			</colgroup>
			<thead>
				<tr>	
					<th>编号</th>
					<th>姓名</th>
					<th>成绩</th>
				</tr>
			</thead>	
			
			{% for stu in studentList %}
				<tr>
					<td>{{ stu['id'] }}</td>
					<td>{{ stu['name'] }}</td>
					<td>{{ stu['score'] }}</td>
				</tr>	
			{% endfor %}
		</table>
		</tbody>
    </div>
 
<!--     导入下面的页码-->
    {%import 'page.html' as pg%}
    {{pg.my_paginate(pagination,'query_stu')}}
<!--query_stu是对应的方法名称是什么,然后在点击页码时可以找到该方法,从而展示数据-->
 
</body>
</html>

style.css

/* 分页容器样式 */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 20px 0;
	list-style: none;
}

/* 页码按钮样式 */
.pagination a {
    padding: 8px 12px;
    margin: 0 4px;
    text-decoration: none;
    color: #333;
    border: 1px solid #ddd;
    border-radius: 4px;
}

/* 当前页码样式 */
.pagination a.active {
    background-color: #007bff;
    color: #fff;
    border-color: #007bff;
}

/* 鼠标悬停在页码按钮上的样式 */
.pagination a:hover {
    background-color: #f5f5f5;
}

table {
    border-collapse: collapse;
    width: 60%;
    border: 1px solid #ddd;
    font-size: 14px;
}

th, td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: center;

}

th {
    background-color: #000/*#4CAF50*/;
    color: white;
}

tr:nth-child(even) {
    background-color: #f2f2f2;
}

tr:hover {
    background-color: #ddd;
}

  

 

database.py

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

models.py

from database import db
from config import app
class StudentMore(db.Model):
    __tablename__= 'Students'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(108), nullable=False)
    score = db.Column(db.Integer, nullable=False)
    
    def __repr__(self):
        return 'StudentMore  %r' % self.name
    
    
with app.app_context():
    db.create_all()

app.py

from flask import Flask,render_template
from flask import redirect
from flask import url_for
from database import db
from config import app
from models import StudentMore
 
@app.route('/stu/query/<int:page>', methods=['GET'])
def query_stu(page=None):
    if not page:
        page = 1
    students = StudentMore.query.paginate(page=page,per_page=5)
    # page是第几页,per_page是将每5个一页
 
    db.session.commit()
 
    # students.items是分页展示的数据
    return render_template("student.html", studentList=students.items,  pagination=students)
 
 
@app.route('/')
def index():
    return redirect(url_for("query_stu",page=1))
 
 
if __name__=="__main__":
    app.run(debug=True)
 

  

  

  

  

  

标签:__,pagination,sqlalchemy,分页,flask,db,color,import,page
From: https://www.cnblogs.com/luoye00/p/18456589

相关文章

  • <Project-8.1 pdf2tx-MM> Python Flask 用浏览器翻译PDF内容 2个翻译引擎 繁简中文结果
    更新ProjectName:pdf2tx(P6)Date:5oct.24Function:在浏览器中翻译PDF文件Code:https://blog.csdn.net/davenian/article/details/142723144升级ProjectName:pdf2tx-mm(P8)7oct.24 加入多线程,分页OCR识别,提高性能与速度使用googletranslator, AzureAPI做......
  • python+flask计算机毕业设计银行资金账户管理系统(程序+开题+论文)
    文件加密系统的设计与实现tp835本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和金融业务的日益复杂化,银行资金账户管理系统成为现代银行业不可或缺的一部分。传......
  • python+flask计算机毕业设计影评网站系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网的快速发展和普及,影视娱乐产业迎来了前所未有的发展机遇。观众对于电影的选择和评价日益多元化,传统的电影宣传和评价方式已难以......
  • python+flask计算机毕业设计智慧外贸平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全球化和信息技术的飞速发展,外贸行业正经历着前所未有的变革。传统的外贸模式在效率、信息透明度以及服务体验上已难以满足当前市场的......
  • python+flask计算机毕业设计自驾游信息管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着社会经济的快速发展和人民生活水平的不断提高,自驾游已成为现代人休闲度假的重要选择。自驾游以其自由度高、灵活性强的特点,吸引了越来......
  • python+flask计算机毕业设计影视资源管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展和人们文化娱乐需求的日益增长,影视资源已成为现代人生活中不可或缺的一部分。无论是电影、电视剧还是纪录片,都以其......
  • (开题)flask框架基于MVVM架构家政服务平台(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加快和居民生活水平的提高,家政服务已成为现代家庭生活中不可或缺的一部分。然而,传统的家政服务市场存在信息不对称、服务......
  • (开题)flask框架基于OCR的健康随行小程序(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化生活日益普及的今天,人们对于健康生活的追求已不仅限于传统的医疗服务和健身锻炼,而是更加注重日常生活的细节管理和个性化健康指导......
  • (开题)flask框架基于Web的立直麻将业余运动员考级管理系统(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代商业的重要组成部分。礼品卡作为一种新型的礼品形式,因其便捷性、灵活性和个性化特点,受到了广......
  • 插件源码进一步分析与pageHelper分页插件介绍
    知识回顾上一篇自定义MyBatis插件。我们实习了自定义插件,接下来我们先分析一下他的执行逻辑。Plugin实现了InvocationHandler接口,因此它的invoke方法会拦截所有的方法调用。invoke方法会对所拦截的方法进行检测,以决定是否执行插件逻辑。我们看看org.apache.ibatis.plu......