class BanJi(db.Model): __tablename__ = 'BanJi' id = db.Column(db.Integer, unique=True, primary_key=True) name = db.Column(db.String(124), name='班级名') banzhuren = db.Column(db.String(124), name='班主任') user = db.relationship("User", backref="banji") kecheng = db.relationship("KeCheng", backref="banji") def __repr__(self): return "<{}班级>".format(self.name) class User(db.Model): __tablename__ = 'User' id = db.Column(db.Integer, unique=True, primary_key=True) name = db.Column(db.String(124),name='账号') email = db.Column(db.String(124), name='邮箱') pwd = db.Column(db.String(124), name='密码') 家庭成员数 = db.Column(db.FLOAT) 家庭情况 = db.Column(db.TEXT) banji_id = db.Column(db.Integer, db.ForeignKey('BanJi.id')) chengji = db.relationship("ChengJi", backref="user")注释这段代码
时间: 2024-03-28 15:39:19 浏览: 59
这段代码是一个 Python Flask 应用中的 SQLAlchemy 数据库模型定义,用于定义班级、用户以及成绩等数据表的结构。其中 BanJi 类表示班级,包含 id、name、banzhuren 等属性,同时与 User、KeCheng 类建立了一对多的关系;User 类表示用户,包含 id、name、email、pwd、家庭成员数、家庭情况等属性,同时与 BanJi、ChengJi 类建立了一对多的关系;ChengJi 类表示成绩,包含 id、score、user_id、kecheng_id 等属性,同时与 User、KeCheng 类建立了多对一的关系。这段代码注释清晰,易于理解。
相关问题
class KeCheng(db.Model): __tablename__ = 'KeCheng' id = db.Column(db.Integer, unique=True, primary_key=True) name = db.Column(db.String(124), name='课程名') beizhu = db.Column(db.String(124), name='课程每周安排时间') banji_id = db.Column(db.Integer, db.ForeignKey('BanJi.id')) chengji = db.relationship("ChengJi", backref="kecheng") def __repr__(self): return "<{}课程>".format(self.name)注释这段代码
这段代码是一个 Python Flask 应用中的 SQLAlchemy 数据库模型定义,用于定义课程数据表的结构。KeCheng 类表示课程,包含 id、name、beizhu 等属性,同时与 BanJi、ChengJi 类建立了一对多的关系。其中 banji_id 属性是一个外键,用于关联到班级表中的 id 字段。该类还重载了 __repr__ 方法,用于在调试时打印对象的字符串表示。这段代码同样注释清晰,易于理解。
from flask_admin import Admin,AdminIndexView from run import app from flask_admin.contrib.sqla import ModelView from flask import current_app,redirect,url_for,request from models import db,User,BanJi,KeCheng,TongGao,ChengJi class MyModelView(ModelView): def inaccessible_callback(self, name, **kwargs): # redirect to login page if user doesn't have access return redirect(url_for('login', next=request.url)) class MyUser(MyModelView): column_labels = dict( name='账号', email='邮箱', pwd='密码', ) column_searchable_list = ['name','家庭情况'] class MyBanJi(MyModelView): column_labels = dict( name='班级名', banzhuren='班主任', ) column_searchable_list = ['name'] class MyKeCheng(MyModelView): column_labels = dict( name= '课程名', beizhu = '课程每周安排时间' ) column_searchable_list = ['name'] admin = Admin(app=app, name='后台管理系统',template_mode='bootstrap3', base_template='admin/mybase.html',index_view=AdminIndexView( name='导航栏', template='admin/welcome.html', url='/admin' )) admin.add_view(MyBanJi(BanJi, db.session,name='班级信息管理')) admin.add_view(MyUser(User, db.session,name='用户信息管理')) admin.add_view(MyKeCheng(KeCheng, db.session,name='课程信息管理')) admin.add_view(MyModelView(ChengJi, db.session,name='成绩信息管理')) admin.add_view(MyModelView(TongGao, db.session,name='公告管理')) if __name__ == '__main__': app.run(debug=True)注释这段代码
这段代码使用 Flask-Admin 库创建了一个后台管理系统,包含了对班级、用户、课程、成绩和公告的管理。 MyModelView 继承了 Flask-Admin 提供的 ModelView,自定义了一个 inaccessible_callback 方法,用于处理未授权用户访问页面的情况。 MyUser、MyBanJi 和 MyKeCheng 分别继承了 MyModelView,用于定制不同模型的视图。最后,创建了一个 Admin 实例,并通过 add_view 方法将不同模型的视图添加到后台管理系统中。如果该脚本直接运行,则启动 Flask 服务器开启调试模式。
阅读全文