美文网首页
flask-分页、模型对应关系

flask-分页、模型对应关系

作者: 旧时初_2e8d | 来源:发表于2018-10-11 16:36 被阅读0次

    一、分页

        page = int(request.args.get('page', 1))
        # 方法一
        stus = Students.query.offset((page - 1) * 2).limit(5)
        # 切片
        stu1 = Students.query.all()[(page - 1) * 2:page * 2]
        # sql语句
        sql = 'select * from students limit %s,%s ' % ((page - 1) * 2, page * 2)
        stu2 = db.session.execute(sql)
        # paginate()方法
        paginates = Students.query.paginate(page, 4)
        stu3 = paginates.items
        return render_template('index.html', stus=stu3, paginates=paginates)
    

    二、模型关系

    1.一对多
    学生类
    class Students(db.Model):
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        s_name = db.Column(db.String(20), unique=False, nullable=False)
        s_age = db.Column(db.Integer, default=19)
        s_g = db.Column(db.Integer, db.ForeignKey('grade.id'), nullable=True)
    
        __tablename__ = 'students'
    
    班级类
    class Grade(db.Model):
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        g_name = db.Column(db.String(30), unique=True, nullable=False)
        students = db.relationship('Students', backref='grade')
    
        __tablename__ = 'grade'
    
    绑定学生和班级关联关系
        stus_id = [8, 9]
        for id in stus_id:
            stu = Students.query.get(id)
            # 在flask中stu.s_g获取的值为int类型
            # 在django中,stu.s_g获取的是对象,stu.s_g_id获取到的int类型
            stu.s_g = 3
            stu.save()
    
    通过班级查找学生信息
    grade = Grade.query.filter(Grade.g_name == '花儿一班').first()
        stus = grade.students
    
    通过学生查找班级信息
     stu = Students.query.get(5)
        # 获取班级,学生对象.backref
        grade = stu.grade
    
    2.多对多
    学生类
    class Students(db.Model):
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        s_name = db.Column(db.String(20), unique=False, nullable=False)
        s_age = db.Column(db.Integer, default=19)
        s_g = db.Column(db.Integer, db.ForeignKey('grade.id'), nullable=True)
    
        __tablename__ = 'students'
    
    课程类
    class Course(db.Model):
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        g_name = db.Column(db.String(30), unique=True, nullable=False)
        students = db.relationship('Students', secondary=s_c, backref='cou')
    
        __tablename__ = 'course'
    
    中间表
    s_c = db.Table('s_c',
                   db.Column('s_id', db.Integer, db.ForeignKey('students.id'), primary_key=True),
                   db.Column('c_id', db.Integer, db.ForeignKey('course.id'), primary_key=True))
    
    绑定学生与课程关联关系
    stu = Students.query.get(2)
        # 学生对象查找课程信息,stu.cou
        cou1 = Course.query.get(1)
        cou2 = Course.query.get(2)
        # 绑定学生科课程的关联关系
        stu.cou.append(cou1)
        stu.cou.append(cou2)
        stu.save()
    

    相关文章

      网友评论

          本文标题:flask-分页、模型对应关系

          本文链接:https://www.haomeiwen.com/subject/qnwbaftx.html